HashMap与LinkedHashMap类型集合

一个小白 2024-07-19 11:39:00 阅读 97

对于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类型相同。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。