2014-11-15 148 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的构造,实现你想要什么都比较逻辑。