记录数组中元素出现次数

/*定义一个方法传入一个int类型数组,输出这个数组中每一个数字及其出现的个数
例如 传入数组[1,2,2,2,3,3,4,4,4,4]  打印结果:
数字1出现了1次
数字2出现了3次…
*/

public class t02 {
public static void main(String args[]){
int [] arr = {1,2,2,2,3,3,4,4,4,4};

testaaa(arr);//方法二 调用

                int[] ele = new int[arr.length];//记录出现的元素
ele[0] = arr[0]; //数字1
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数组中是否存在
//存在,则元素出现个数+1, 
boolean isFind = false; 
for (int j = 0; j < index; j++) {
if (ele[j] == element) {
isFind = true;//说明已找到
count[j]++;//出现次数+1
}
}
if (!isFind) {//如果不存在,则元素存个ele数组中,并设置元素出现个数为1
ele[index] = element;
count[index] = 1;
index++;
}
}

//打印结果:
for (int i = 0; i < index; i++) {
//数字1出现了1次
System.out.println("数字"+ele[i]+"出现了"+count[i]+"次");
}



}

//方法二:使用HashMap
public static void testaaa(int [] str) {
   Map<Integer, Integer> map=new HashMap<>();
   for (int i = 0; i < str.length; i++) {
       if(map.containsKey(str[i])) {
           map.put(str[i], map.get(str[i])+1);//原来有则+1
       }else {
           map.put(str[i], 1); //原来没有则放一个
       }
   }
//    System.out.println(map);
//    Set<Entry<Integer,Integer>> entrySet = map.entrySet();

   for (Entry<Integer, Integer> entry : map.entrySet()) {
       System.out.println("数字"+entry.getKey()+"出现了"+entry.getValue()+"次");
   }

}


    //


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值