2014-11-15 147 views
2
Set set=new TreeSet(); 

    set.add(2); 
    set.add(1); 
    set.add("3"); 
    System.out.println(set); 

Set是一個Collection,它是不均勻的,因此應採取的任何值(無論IntegerString和)這段代碼片段爲什麼會出現錯誤?

+1

有什麼特別的錯誤?在編譯或執行過程中?錯誤發生在哪裏? –

+7

你想比較'Integer'和'String' - 你如何期望這種比較起作用? –

回答

5

TreeSet存儲其值,以便 - 這意味着它們必須是相互可比較的。您無法將IntegerString進行比較,因此您在執行時會收到異常。

如果你真的希望能夠做到這一點,你可以提供自己的自定義ComparatorTreeSet的構造,實現你想要什麼都比較邏輯。