Minha dúvida é a seguinte:
Quando é melhor usar a classe Vector e quando usar Hashset, qual a principal diferença entre os dois?
Obrigado.
Minha dúvida é a seguinte:
Quando é melhor usar a classe Vector e quando usar Hashset, qual a principal diferença entre os dois?
Obrigado.
De uma olhada em http://www.guj.com.br/posts/list/34305.java
Classes ArrayList e LinkedList (interface List):
Use quando você quer uma lista, com ou sem repetições, que pode ser acessada através de um índice.
Exemplo:
List<String> nomes = new ArrayList<String>();
nomes.add("João");
nomes.add("José");
nomes.add("João"); //Ok, podem haver repetições
System.out.println(nomes.get(2));
//Listando tudo, você ainda vê o nome duplicado
for (String nome : nomes) {
System.out.println(nome);
}
Classes HashSet, LinkedHashSet e TreeSet (interface Set):
Use quando você quer um conjunto de dados, sem repetição. O TreeSet deve ser usado quando os dados devem ser ordenados.
Set<String> nomes = new HashSet<String>();
nomes.add("João");
nomes.add("José");
nomes.add("João"); //Será descartado. Esse método retorna false nessa linha
nomes.add("Ana");
//System.out.println(nomes.get(2)); --> Não existe get por índice num set
//Listando tudo, você não vê o nome duplicado
for (String nome : nomes) {
System.out.println(nome);
}
//Troque depois de HashSet para TreeSet e verá a lista ordenada
Classes HashMap, TreeMap (interface Map):
Use quando você quer associar uma chave a um valor. O TreeMap é usado se a chave tiver de ser ordenado.
Map<String, int> idades = new HashMap<String>();
idades.add("João", 15);
idades.add("José", 12);
idades.add("João", 20); //Substitui a idade 15, por 20. Não existem chaves duplicadas
System.out.println(idades.get("José")); //Imprime 12
//Listando tudo, você não vê o nome duplicado
for (Entry<String,int> pessoa : idades.entrySet()) {
System.out.println(pessoa.getKey() + " tem " + pessoa.getValue() + " anos.");
}
//Troque depois de HashMap para TreeMap e verá a lista ordenada.
Classes Vector e Hashtable: Vector é um caso de list, Hashtable de set, mas são implementações antigas e não devem ser usadas a menos que você esteja numa versão de java inferior a 1.2.
Inclui uns exemplos ali em cima, para ficar mais claro.
Valeu pessoal, muito obrigado, agora vou testar o funcionamento baseado no que vcs me falaram.