Java entrySet之Map.Entry
阿新 • • 發佈:2018-12-21
Java的HashMap是<K,V>鍵值對結構儲存資料。Java在遍歷HashMap時候,有時候開發者可能不需要關心Key鍵或者開發者根本就不知道Key鍵是什麼,就想獲取value值或對value值做修改。那就可以使用Java的Map.Entry實現。
假設現在一個HashMap裡面存放了三對值:<123,1> , <456,2> , <789,3>。開發者不想知道也可能不會知道key鍵值,只是希望在HashMap裡面儲存的value值:
如果是1,就換成3;
如果是2,就換成4;
如果是3,就換成5。
這種情況沒必要根據key取value值,然後做替換,此時只需要把value遍歷處理然後替換即可,例如:
private void test() { HashMap<Object, Integer> map = new HashMap(); map.put(123, 1); map.put(456, 2); map.put(789, 3); Set<Map.Entry<Object, Integer>> sets = map.entrySet(); Iterator<Map.Entry<Object, Integer>> iterator = sets.iterator(); while (iterator.hasNext()) { Map.Entry<Object, Integer> entry = iterator.next(); //不關心key。 //Object key = entry.getKey(); Integer integer = entry.getValue(); if (integer == 1) { entry.setValue(4); } if (integer == 2) { entry.setValue(5); } if (integer == 3) { entry.setValue(6); } } System.out.println(map.get(123) + ""); System.out.println(map.get(456) + ""); System.out.println(map.get(789) + ""); }
輸出:
2018-12-14 19:47:03.131 24838-24838/zhangphil.book I/System.out: 4
2018-12-14 19:47:03.131 24838-24838/zhangphil.book I/System.out: 5
2018-12-14 19:47:03.131 24838-24838/zhangphil.book I/System.out: 6