为什么此代码段会出错?

Nil*_*mar 2 java

    Set set=new TreeSet();

    set.add(2);
    set.add(1);
    set.add("3");
    System.out.println(set);
Run Code Online (Sandbox Code Playgroud)

Set是a Collection,它不是齐次的,所以它应该取任何值(Both IntegerString)

Jon*_*eet 5

TreeSet按顺序存储其值 - 这意味着它们必须相互比较.您无法将a Integer与a 进行比较String,因此在执行时会出现异常.

如果你真的想要能够做到这一点,你可以为Comparator它的构造函数提供自己的自定义TreeSet,实现你想要的比较逻辑.