Alguém consegue me explicar o porquê das saídas -> three two
??? :shock: :?: :?: :?:
Testei com o NavigableSet e com o SortedSet…
[code]public static void main(String[] args) {
TreeSet<String> mts = new TreeSet<String>();
mts.add("one");
mts.add("two");
mts.add("three");
mts.add("four");
mts.add("five");
//SortedSet<String> tas = mts.tailSet("three");
NavigableSet<String> tas = mts.tailSet("three", true);
for (String st : tas){
System.out.print(st+" ");
}[/code]
Pirmeiro: O TreeSet coloca os objetos usando alguma ordenação natural, ou de algum comparator que tu fornece na hora de instanciar.
Como no caso tu não forneceu qualquer Comparator, ele vai utilizar a ordenação natural de Strings, por ordem alfabetica, resultando no seu conjunto em “five”,“four”,“one”,“three”,“two”.
Segundo: O método tailSet(Object, boolean), retorna um NavigableSet que vai do objeto que tu forneceu até o final do TreeSet ordenado, incluindo ou não (pelo boolean) o objeto.
Ficou claro?
Quando usar NavigableSet? Comparando com SortedSet ou TreeSet…
SortedSet só deixa andar para frente. NavigableSet permite andar para trás também.