Collection -

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

[code]

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

}[/code]

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

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.

[quote=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[/quote]

falow tudo…
(pergunta tirada do Wizlabs ?)