HashMap与LinkedHashMap类型集合

对于HashMap

特点:

  • 特点无序,没索引,不重复
  • 保证键的唯一

类似于Map类型的集合,都可以在书名号中添加一个类名和一个数据类型来添加元素,也用“put”,也可以遍历集合元素

 Set<Student> keys = hm.keySet();  //获取键值
        for (Student k : keys) {
            String key = hm.get(k);  //获取添加的地址
            System.out.println(key+"--"+k);
        }

如果打算用于统计方面,此次以随机数据为例。

首先设置一个数组来存放选项,让这些选项充当键

// 创建一个数组用来存储可能的键
String[] arr = {"A","B","C","D"};

通过Random”命令创建一个随机变量

 Random r = new Random();  // 产生随机数据的对象

然后设置一个接口,进入循环

ArrayList<String> list = new ArrayList<>();
        Random r = new Random();  // 产生随机数据的对象
        for (int i = 0; i < 80; i++) {  // 随机生成八十次
            int index = r.nextInt(arr.length);  // 生成的数字最大不超过数组“arr”的长度
            list.add(arr[index]); // 将生成的索引对应的元素添加到列表中
        }

此处创建了一个名叫“list”的接口,并将随机生成的数据导入集合中,此时用“HashMap”来创建一个集合

HashMap<String, Integer> hm = new HashMap<>();

然后用增强“for”循环的方法来遍历集合。 

"集合名.for"确定后自动生成,然后

for (String name : list) {
            // 首先判断该集合中是否存在该元素
            if (hm.containsKey(name)) {
                // 当存在时,获取已经有的票数并增加1
                int num1 = hm.get(name);
                hm.put(name, num1 + 1); //存入集合并添加数值
            } else {
                hm.put(name, 1); // 第一次出现,设置值为1
            }
        }
        //打印HashMap的内容验证
       System.out.println(hm);

此时如果想要求那个选项的数最大,则

//求max
        int max = 0;
        Set<Map.Entry<String,Integer>> entries = hm.entrySet();
        //将票数传递给一个集合
        for (Map.Entry<String, Integer> entry : entries) {
            int count = entry.getValue(); //获取集合中的数值
            if(count >max){ //通过比较选出最大值
                max = count;
            }
        }
        System.out.println(max);

对于"LinedHashMap"

特点:

  • 存取有序,没索引,不重复
  • 保证键的唯一,也会覆盖同一键的数据,后盖前

其他与HashMap类型相同。

 

posted @ 2024-07-19 10:56  昏睡的云雪  阅读(23)  评论(0编辑  收藏  举报