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