我們都知道Set(除了它們的這種實現)doesn't guarantee
的迭代排序。所以我試圖確保這與下面的示例代碼。Java集訂購
public static void main(String[] args) throws InterruptedException {
Map<String,String> lMap=new HashMap<String, String>();
lMap.put("A", "A");
lMap.put("B", "B");
lMap.put("C", "C");
lMap.put("D", "D");
lMap.put("E", "E");
lMap.put("F", "F");
lMap.put("G", "G");
lMap.put("H", "H");
lMap.put("I", "I");
lMap.put("J", "J");
lMap.put("K", "K");
lMap.put("L", "L");
for(int i=0;i<10000;i++){
Thread.sleep(100);
Set<Entry<String, String>> entrYset=lMap.entrySet();
for(Map.Entry<String, String> e:entrYset){
System.out.println(e.getKey()+" , "+e.getValue());
}
System.out.println("******************************************************");
}
}
我在代碼上執行了很多次,發現它是打印記錄的順序。
我的問題是,如果java聲稱HashMap是無序的,那麼爲什麼這個記錄打印的順序。如果有人可以給我理由,例如,這將是偉大的。
你爲什麼要印10000次?如果地圖未被修改,訂單將始終保持不變。 – gontard