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 版权协议,转载请附上原文出处链接和本声明。