Sortedset子列表打印

时间:2015-04-18 14:59:15

标签: java sortedset

帮助我理解一件事。

我创建了一个子列表并打印出来。现在我无法理解为什么“苹果”被打印出来,但“风”不是。如果我写“aa”它按照我想要的方式工作,但我想用“apple”来创建子列表,其中不包括“apple”。这是真的吗?

SortedSet<String> set = new TreeSet<>();
set.add("apple");
set.add("key");
set.add("value");
set.add("roof");
set.add("size");
set.add("wind");

System.out.println(set);
System.out.println(set.subSet("apple","wind"));

输出:

[apple, key, roof, size, value, wind]
[apple, key, roof, size, value]

1 个答案:

答案 0 :(得分:1)

查看documentation of subSet

  

参数:

     
      
  • fromElement - 返回集合的低端点(包括)
  •   
  • toElement - 返回集合
  • 的高端点(独占)   

因此,结果中包含subSet("apple","wind") apple,但wind被排除在外。

如果您希望能够指定应包含或排除哪个端点而不是SortedSet,则可以使用NavigableSet作为参考,并且 像{/ 3>这样的subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)方法

NavigableSet<String> set = new TreeSet<>(Arrays.asList("apple", "key",
        "value", "roof", "size", "wind"));
System.out.println(set);
System.out.println(set.subSet("apple", false, "wind", false));

输出:

[apple, key, roof, size, value, wind]
[key, roof, size, value]