simplesmente estou tentando classificar esse ArrayList mais não esta classificando, não sei o porquê. Mas ela não é classificada por ordem natural?
mas nem isso esta ocorrendo
importjava.util.*;publicclassTesteSort{publicstaticvoidmain(String[]args){ArrayList<String>nomes=newArrayList<String>();nomes.add("Fernando");nomes.add("diego");nomes.add("Maria");nomes.add("joão");nomes.add("Tales");System.out.println("\nsorted: "+nomes);//ArrayList nao pode ser classificado o motivo de ter aceito a classificação é //a classe String ja implementa Comparable permitindo assim a classificação dos//itens da lista}}
Em inglês, você não pode confundir “ordered” com “sorted”.
“Sorted” é “ordenado”, e “ordered” é “arranjado” (também pode ser “ordenado” ou “mandado” ou “encomendado”. Depende do contexto).
Para você ter uma idéia, um ArrayList é “ordered” no sentido em que se você inserir as coisas em uma determinada sequência, elas permanecem na mesma sequência em que entraram, e um HashSet não é “ordered” porque ele não preserva essa sequência quando você vai recuperar os elementos, mas um LinkedHashSet já é “ordered” porque ele preserva a sequência. Um TreeSet é “sorted” porque ele sempre deixa as coisas em ordem alfabética.
I ordered a book - eu encomendei um livro
I sorted the books - eu arrumei (ordenei) os livros
Eu fiz exatamente isso antes, mas nao esta classificando... =/
V
vitorfarias
Cara letras maiusculas e minusculas espaços no inicio tabem influem na ordenação
E
entanglement
Ah, entendi o seu problema. É que se você não passar um parâmetro a mais para o TreeSet, ele não vai ordenar de acordo com as regras da língua portuguesa, mas de acordo com o código Unicode de cada caracter. Para fazer do jeito que você espera:
packageguj;importjava.text.Collator;importjava.util.Locale;importjava.util.Set;importjava.util.TreeSet;publicclassExemploSort{publicstaticvoidmain(String[]args){Set<String>nomesUnicode=newTreeSet<String>();nomesUnicode.add("Fernando");nomesUnicode.add("diego");nomesUnicode.add("Maria");nomesUnicode.add("joão");nomesUnicode.add("Tales");System.out.printf("Ordenação Unicode: %s%n",nomesUnicode);LocaleptBr=newLocale("pt","BR");Set<String>nomesPortugues=newTreeSet<String>(Collator.getInstance(ptBr));nomesPortugues.add("Fernando");nomesPortugues.add("diego");nomesPortugues.add("Maria");nomesPortugues.add("joão");nomesPortugues.add("Tales");System.out.printf("Ordenação em Português: %s%n",nomesPortugues);}}
Cara ja to ligado no que ta acontecendo quando vc faz System.out.println(nomes); ele chama o metodo toString e se não me falha a memoria toString de set não garante a ordenação.
Acho que é isso
diegohsi
vitorfarias:
Cara ja to ligado no que ta acontecendo quando vc faz System.out.println(nomes); ele chama o metodo toString e se não me falha a memoria toString de set não garante a ordenação.
Acho que é isso
Eu não estou usando um SET mas sim um LIST
ViniGodoy
Então siga a dica do Entanglement e passe um Collator no sort: