簡體   English   中英

Java中輸出順序Hashset的基礎是什么

[英]What is the basis of output order Hashset in Java

我正在嘗試打印Hashset的內容。 並將其輸出為[D,E,F,A,B,C]。 我期待它輸出類似[F,E,D,B,A,C]的東西。 這背后有邏輯嗎?

public class TestSomething {
    public static void main(String[] args) {
        HashSet<String> hashSet = new HashSet<String>();
        hashSet.add("F");
        hashSet.add("E");
        hashSet.add("D");
        hashSet.add("B");
        hashSet.add("A");
        hashSet.add("C");

        System.out.println(hashSet.toString())
    }
}

HashSet javadoc

它不能保證集合的迭代順序; 特別是,它不保證訂單會隨着時間的推移保持不變。

如果您需要有序集,請嘗試使用LinkedHashSet

來自Java文檔

[Hashset]實現Set接口,由哈希表(實際上是HashMap實例)支持。 它不能保證集合的迭代順序; 特別是,它不保證訂單會隨着時間的推移保持不變。

將LinkedHashSet用於預期輸出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM