對於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型別相同。