我剛開始學習有關集合,有人提到它不關心順序,與列表不同。Java - 設置不按順序打印
然而,當我鍵入這段代碼:
public class test {
public static void main(String[] args) {
Set<Integer> nums = new HashSet<Integer>();
nums.add(0);
nums.add(1);
nums.add(2);
nums.add(3);
for (Integer num : nums)
System.out.println(num);
}
}
基於第一線,輸出應該是隨機的,而是它給了有序輸出:
0
1
2
3
我有試圖加擾號碼被添加的順序,像這樣:
public class test {
public static void main(String[] args) {
Set<Integer> nums = new HashSet<Integer>();
nums.add(1);
nums.add(0);
nums.add(3);
nums.add(2);
for (Integer num : nums)
System.out.println(num);
}
}
奇怪的是,輸出仍然是有序的!
在我打印其元素之前,有什麼不知何故排序的設置? 或者是HashSet
不適用於創建無序集?
不具有由於某些事情的保證是不一樣的具有對於某些東西相反的保證。 – null 2014-12-13 15:34:44