Como eu faço para ordenar um Vector composto por Strings em ordem alfabética?

Se souberem como fazer isso com um array também já seria muito útil :smiley:
Mas de preferencia com o Vector

Obrigado

    Vector v = new Vector();
    v.add("d");v.add("c");v.add("b");v.add("a");
    Collections.sort(v); 
    System.out.println(v);

    String [] m = {"d","c","b","a"};
    Arrays.sort(m);
    for(int i = 0; i < m.length; i ++){
        System.out.println(m[i]);
    }

Olá,

Array:
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Arrays.html#sort(java.lang.Object[])

        String[] strs = {"Homer", "Marge", "Lisa", "Bart", "Apu"};
        Arrays.sort(strs);
        System.out.println(Arrays.toString(strs));

Vector (ou qualquer outra classe que implementa List):
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collections.html#sort(java.util.List)

        Vector vetor = new Vector();
        vetor.add("Homer");
        vetor.add("Marge");
        vetor.add("Bart");
        Collections.sort(vetor);
        System.out.println(vetor);

[]s,
Sami

Foi mal. Atendi o telefone antes de enviar a resposta :slight_smile: Me chamem de eco.

Se você quer uma ordenação mais natural, igual a encontrada num dicionário, use os métodos sort descritos juntamente com um Collator:

Collections.sort(seuVetor, Collator.getInstance());

Ou

Arrays.sort(seuArray, Collator.getInstance());

O vetor:
[Ana, Vinícius, Óstia, Ângstron, Oswaldo]

Sem o Collator ficará ordenado como:
[Ana, Oswaldo, Vinícius, Ângstron, Óstia]

Com o Collator:
[Ana, Ângstron, Óstia, Oswaldo, Vinícius]

Para mais informações sobre o Collator:

E se for para organizar um Vector que tem dentro dele vários objetos?

Nesse caso, você tem duas opções.

  1. Se seus objetos implementarem a interface Comparable (como é o caso das classes wrapper - Integer, Double, etc) você pode usar o Arrays ou Collections.sort diretamente.

  2. Caso contrário, você pode implementar um Comparator, que faça a comparação para você e usar o sort passando no segundo parâmetro o comparador. O Collator é uma exemplo disso, pois ele é um tipo de Comparator.

Para mais informações à respeito:
http://www.guj.com.br/posts/list/45985.java#241201

em caso de objetos vc deve implementar os metodos compareTo() ou compare… ja que sao objetos… nao existe uma ordem natural para objetos…como para String tem a,b,c,d…
A respeito da sua primeira duvida use ArrayList inves de Vector, o Vector é bem pouco usando em java devido ser sincronizado e isso afeta bastante o desempenho, entao poderia ficar assim com ArrayList.

import java.util.*;
class Arr{
ArrayList<String> lista = new ArrayList<String>();
lista.add("camilo");
lista.add("guj");
lista.add("bar");
Collections.sort;
System.out.println(lista);
}

a class nao ta completa… mais o que vc precisa para sua pergunta é isso!! esqueça vector! desde que a sincronização nao seja o ponto crucial!! :smiley:
flw!!