您的位置:首页 > 编程语言 > Java开发

Java打印任意数组元素出现的次数

2017-10-07 22:30 267 查看
//方法一:
int[] arr = { 1, 2, 3, 3, 4, 4 };
boolean[] flagArr = new boolean[arr.length];

for (int i = 0; i < arr.length; i++) { // arr中重复的元素对应的索引arr2中赋值为0;
int count = 0;
if (!flagArr[i]) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] == arr[j]) {
flagArr[j] = true;
}
}
}
}

for (int i = 0; i < arr.length; i++) {// 只要arr2中不为0的话,那对应得索引在arr中的元素必不重复;
if (!flagArr[i]) {
int count = 0;
for (int j = 0; j < arr.length; j++) {
if (arr[i] == arr[j]) {
count++;
}
}
System.out.println(arr[i] + "出现了" + count + "次");
}
}
/*打印结果:
1出现了1次
2出现了1次
3出现了2次
4出现了2次

*/
//方法二:
/**
这个方法是定义一个新数组,新数组只存老数组不重复的元素。
*/
int[] arr = { 1, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, 3, 3, 4, 0,4, 4, 4, 4, 5, 5, 5, 5, 5 };
int[] arr2 = new int[arr.length];
boolean flag;
int count1 = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == 0) {
count1++;
}
}
System.out.println(0 + "出现了" + count1 + "次");
for (int i = 0; i < arr.length; i++) {
flag = true;
for (int j = 0; j < arr.length; j++) {
if (arr[i] == arr2[j]) {
flag = false;
}
}
if (flag) {
arr2[i] = arr[i];
int count = 0;
for (int j = i; j < arr.length; j++) {
if (arr[i] == arr[j]) {
count++;
}
}
System.out.println(arr[i] + "出现了" + count + "次");
}
}
/*打印结果:
0出现了8次
1出现了1次
2出现了3次
3出现了3次
4出现了5次
5出现了5次

*/
//方法三:
//虽然集合有方法可以去重,但是感觉还是得锻炼一下自己的逻辑思维能力

ArrayList<Integer> arrlist = new ArrayList<>();
int[] arr = { 1, 1, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, 3, 3, 4, 0, 4, 4, 4, 4, 5, 5, 5, 5, 5 };
// List<int[]> asList = Arrays.asList(arr);
for (int i : arr) {
arrlist.add(i);
}
for (int x = 0; x < arrlist.size() - 1; x++) {// 手动集合去重代码
for (int y = x + 1; y < arrlist.size(); y++) {
if (arrlist.get(x) == arrlist.get(y)) {
arrlist.remove(y);
y = y - 1;
}
}
}
for (int i = 0; i < arrlist.size(); i++) {
int count = 0;
for (int j = 0; j < arr.length; j++) {
if (arrlist.get(i) == arr[j]) {
count++;
}
}
System.out.println(arrlist.get(i) + "出现了" + count + "次");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java boolean 数组 统计