如题,今日新学,或许对于群里的大神来说很简单,对于小白的我,确实一座小山峰了
package com.class_Test;
/**
* 需求:有如下数组int[ ] arr = {32,11,77,22,11,77};
* 写代码, 生成一个新的数组,这个新的数组,只包含重复的元素极其个数,
* 也就是{“11=2”, “77=2”},也就是说,11有2个,77有2个
*
*思路:
*1、新建一个数组,存放重复计数
*2、使用if判断重复个数,并记数(要求没遍历一个数初始化记数变量)
*3、将记数同步导入新建的数组里面
*4,、判断新建数组元素大于1的则为重复的个数
*5、两个数组同步导出,
*
*
*/
public class Test4 {
public static void main(String[] args) {
int[] arr = { 32, 11, 77, 22, 20, 11, 77, 77, 11, 32 };
int[] temp = new int[arr.length]; //新建临时数组,用于存放重复记数
System.out.print("{");
for (int i = 0; i < arr.length; i++) {
int b = 1;
for (int a = i + 1; a < arr.length; a++) {
if (arr[i] == arr[a]) { // 遍历比较重复数为true
arr[a] = 0;// 当为重复的数时,赋值0
b++;// 重复记数
}
}
if (arr[i] != 0) { // 判断当遍历时 不等于0时为true
temp[i] = b;// 将重复的元素的记数同步写入新的数组
}
if (temp[i] > 1) { // 判断如果等于0则不输出
String num = arr[i] + "=" + (temp[i]);
System.out.print(num+",");
}
}
System.out.println("}");
}
}
|
|