爲什麼在第二和第三組中保持秩序:排序在Java中的HashSet的元素
Integer[] j = new Integer[]{3,4,5,6,7,8,9};
LinkedHashSet<Integer> i = new LinkedHashSet<Integer>();
Collections.addAll(i,j);
System.out.println(i);
HashSet<Integer> hi = new HashSet<Integer>(i);
System.out.println(hi);
LinkedHashSet<Integer> o = new LinkedHashSet<Integer>(hi);
System.out.println(o);
這裏的輸出我得到:
3,4,5,6,7,8,9
3,4,5,6,7,8,9
3,4,5,6,7,8,9
http://stackoverflow.com/a/2704640/1048330 – tenorsax 2012-02-19 00:56:24
*一般來說*,地圖(或設置)使用散列實現具有良好定義的沒有秩序。 (儘管* some *實現,例如LinkedHashSet,有一個as-added命令;請參閱[class-level]文檔以獲得保證(如果有的話)。HashSet和LinkedHashSet文檔中討論了該行爲。) – 2012-02-19 01:02:06
Behrang在說這是巧合。主要從整數哈希碼保持順序的事實。嘗試向哈希集添加更多的數字以及更大的數字,並查看是否保留了元素的順序。 – 2012-02-19 01:15:32