记录元素在数组中出现的次数
需求
定义一个方法传入一个int类型数组,输出这个数组中只出现一次的数字及个数
示例
传入数组[1,2,2,2,3,3,4,4,4,4]
打印结果:
数字1出现了1次
数字2出现了3次…
1
2
3
4
2
3
4
思路
创建两个新数组,分别存放元素种类以及出现次数,通过循环嵌套在遍历原数组的同时,遍历元素数组,如果存在则计数数组对应元素自增,反之添加新元素到元素数组。
如:原数组[1,2,2,2,3,3,4,4,4,4] ele数组[1,2,3,4] count数组[1,3,2,4]
代码
public static void method(int[] arr){
int[] ele=new int[arr.length];//记录出现的元素
ele[0]=arr[0];//因为需要作为遍历条件参与,所以必须先放入一个元素
int index=1;//记录ele中的元素数量
int[] count=new int[arr.length];//记录元素出现次数
count[0]=1;//因为元素数组已经存放了一个元素,所以初始值为1
for (int i = 1; i < arr.length; i++) {
int element=arr[i];
//查找element元素在ele数组中是否存在,默认为不存在
boolean isFind=false;
//遍历ele数组
for (int j=0;j<index;j++){
if (ele[j]==element){
isFind=true;//表示找到
count[j]++;//次数加一
}
}
//如果不存在则存入ele数组中,并设置计数为1
if(!isFind){
ele[index]=element;
count[index++]=1;
}
}
for (int i=0;i<index;i++){
System.out.println("数字"+ele[i]+"出现了"+count[i]+"次");
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
上次更新: 2023/12/29 11:32:56