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类型相同。
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。