1大于4怎么样?

Leo*_*Leo 5 java collections set treeset

NavigableSet.lower(E)Javadoc中说,它会返回在此的最大元素大于给定元素设置严格的少,或者null如果没有这样的元素.为什么1输出在这里?不应该是4吗?

NavigableSet original = new TreeSet();
original.add("1");
original.add("2");
original.add("3");
original.add("4");
original.add("10");
Object lower = original.lower("10");
System.out.println(lower);
Run Code Online (Sandbox Code Playgroud)

Ell*_*sch 7

因为值是String(s),Set所以按词法顺序进行比较.请不要使用Raw Types.

NavigableSet<Integer> original = new TreeSet<>();
original.add(1);
original.add(2);
original.add(3);
original.add(4);
original.add(10);
Object lower = original.lower(10);
System.out.println(lower);
Run Code Online (Sandbox Code Playgroud)

输出是

4
Run Code Online (Sandbox Code Playgroud)