HashMap数据统计:存在1-1000的数据共1万个,统计每个数据出现的次数

  • Post author:
  • Post category:其他


HashMap应用场景:做数据统计。存在一些数据,需要统计每一个数字出现的次数,key是每一个数字,value就表示每个数据出现的次数

思路:

(1)需要初始化数据:数据范围1~1000,需要总量是1万个,借助于random产生随机数

(2)考虑1万个数据存储,需要借助于集合(ArrayList或者LinkedList)

(选择ArrayList存放数据:要统计每个数据出现的次数,查询的效率要高,所以使用ArrayList)

(3)做数据统计,需要使用HashMap

(4)打印各个数据出现的次数

数据初始化

 public static void initData() {
        Random random = new Random();
        for (int i=0;i<10000;i++){
            int i1=random.nextInt(1000)+1;  //[0,999)+1
            data.add(i1);
        }
    }

计数

//使用HashMap进行计数,key是数据、value是出现的次数
public static void count() {
        HashMap<Integer,Integer> hashMap = new HashMap<>();
        Iterator iterator = data.iterator();
        //通过遍历集合获取所有数据出现的次数
       while (iterator.hasNext()) {
           Integer i = (Integer) iterator.next();
           if (hashMap.containsKey(i)) {
               hashMap.put(i, hashMap.get(i) + 1);
           } else {
               hashMap.put(i, 1);
           }
       }

完整代码:

public class TestDemo {
    private  static ArrayList<Integer> data=new ArrayList<Integer>(10000);//直接给定10000个空间大小
    public static void main(String[] args) {
        initData();
        count();
    }
    //数据初始化
    public static void initData() {
        Random random = new Random();
        for (int i=0;i<10000;i++){
            int i1=random.nextInt(1000)+1;  //[0,1000)+1
            data.add(i1);
        }
    }
    //计数
    public static void count() {//使用HashMap进行计数,key是数据、value是出现的次数
        HashMap<Integer,Integer> hashMap = new HashMap<>();
        Iterator iterator = data.iterator();
        //通过遍历集合获取所有数据出现的次数
       while (iterator.hasNext()) {
           Integer i = (Integer) iterator.next();
           if (hashMap.containsKey(i)) {
               hashMap.put(i, hashMap.get(i) + 1);
           } else {
               hashMap.put(i, 1);
           }
       }
        Iterator<Map.Entry<Integer, Integer>> iterator1 = hashMap.entrySet().iterator();
       while (iterator1.hasNext()){
           Map.Entry<Integer, Integer> entry = iterator1.next();
           System.out.println("数据:"+entry.getKey()+"  出现次数:"+entry.getValue());
       }
    }
}



版权声明:本文为qq_49129184原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。