簡單地說,在keyset方法返回的set上做修改會改變原來的hashmap,這也許不是你想要的,於是形成一個隱藏的bug
一個簡單的例子
//a simple demo import java.util.HashMap; import java.util.Set; public class TestHashMap { public static void main(String[] args) { HashMap<Integer, Integer> G = new HashMap<Integer,Integer>(); G.put(1, 1); G.put(2, 4); G.put(3, 9); G.put(4, 16); Set<Integer> set = G.keySet(); set.remove(3); System.out.println(G.size());//print 3 } }
