Collection -

3 respostas
R

Qual a saída, não vale compilar ? E a explicação?

import java.util.Collection;
import java.util.TreeSet;

public class TestSet {
	
	public static void main(String[] args) {
		
		Collection<String> set = new TreeSet<String>();
		set.add("Java");
		set.add("XML");
		set.add("Swing");
		set.add("JSP");
                                set.add("Java");

		
		
		for (Object o : set) {
			System.out.println( o + " ");
		}
		
	}

}

3 Respostas

tRuNkSnEt
JSP 
Java 
Swing 
XML

Uai, é fácil isso.

TreeSet vai imprimir os elementos em ordem ascendente e como TreeSet é uma implementação de SET obviamente não vai ter elementos repetidos.
Talvez você esteja se perguntado porque o “JSP” vem antes do “Java”. Isso acontece porque TreeSet implementa Comparable e o metodo compareTo entre String usa a ordem Lexical comparando o valor unicode das letras e letras maiusculas sempre tem valor menor do que as minusculas. Infelizmente isso nao corresponde a nossa ordem alfabética.

JavaDoc String#compareTo

Att, Eliezer

ViniGodoy

E para corrigir o problema e ter uma ordenação mais natural?

Nesse caso, você deve substituir o comparador padrão do TreeSet por um Collator.
Tente criar o seu TreeSet assim:

O Collator ordena na ordem que aparece no dicionário do país que o usuário está.
Assim, acentos também são ordenados corretamente.

Por exemplo, as palavras ângstron e ácido apareceriam juntas com as outras iniciadas pela letra A.

E JSP apareceria depois de Java.

Raff

Eliezer Reis:
JSP Java Swing XML

Uai, é fácil isso.

TreeSet vai imprimir os elementos em ordem ascendente e como TreeSet é uma implementação de SET obviamente não vai ter elementos repetidos.
Talvez você esteja se perguntado porque o “JSP” vem antes do “Java”. Isso acontece porque TreeSet implementa Comparable e o metodo compareTo entre String usa a ordem Lexical comparando o valor unicode das letras e letras maiusculas sempre tem valor menor do que as minusculas. Infelizmente isso nao corresponde a nossa ordem alfabética.

JavaDoc String#compareTo

Att, Eliezer

falow tudo…
(pergunta tirada do Wizlabs ?)

Criado 2 de março de 2008
Ultima resposta 2 de mar. de 2008
Respostas 3
Participantes 4