Praticando o uso de NavigableSet, SortedSet e TreeSet

3 respostas
A

Alguém consegue me explicar o porquê das saídas -> three two

??? :shock: :?: :?: :?:

Testei com o NavigableSet e com o SortedSet...

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+" ");
		}

3 Respostas

J

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?

A

Quando usar NavigableSet? Comparando com SortedSet ou TreeSet…

E

SortedSet só deixa andar para frente. NavigableSet permite andar para trás também.

Criado 23 de setembro de 2010
Ultima resposta 24 de set. de 2010
Respostas 3
Participantes 3