Posso Criar um Vector de inteiros? Como?

14 respostas
H

Como eu crio um Vector de inteiros?

14 Respostas

Y
Vector< Integer > inteiros = new Vector< Integer >();
T
// a) Um "vector" de Inteiros.
List<Integer> vetor = new Vector<Integer>();
// b) Um array de ints
int[] vetor = new int[20];
Jair_Rillo_Junior

A reposta já foi dada acima, agora porque não usar ArrayList ao invés de Vector?

Porque? Porque o ArrayList tem uma melhor performance em relação ao Vector devido ao fato do Vector ser synchronized

H

eh que eu armazenei em um vector n numeros inteiros eu tenho como ordenar este vector??? eu acho que nao, dai eu pensei em criar um vector de inteiros para poder comparar uns com os outros…

jPscoralicK

mas um Vector, por se uma coleção, deveria não aceitar tipos primitivos como inteiros, certo?

ViniGodoy

Ainda sim, use o ArrayList.

Acho que a performance não é a grande questão. Dificilmente você terá uma melhora perceptível ao trocar o Vector por um ArrayList.

Mas eu daria outros motivos:

  1. O ArrayList tem métodos de nomes mais simples, e sem duplicatas. Por exemplo, no vector para adicionar um elemento você pode usar addElement ou add, no ArrayList, só existe o add. Isso evita confusões no código.

  2. O ArrayList é recomendado pela Sun.

  3. Você pode sincronizar apenas os trechos de código onde esse tipo de recurso é necessário, através do comando Collections.synchronizedList.

Para usar o ArrayList faça:

List<Integer> suaLista = new ArrayList<Integer>();

É verdade que tanto o Vector quanto o ArrayList (ou qualquer collection) só aceita objetos, e não tipos primitivos. Entretanto, a classe Integer refere-se a um objeto e, a partir do Java 5, o Java é capaz de converter automaticamente o tipo primitivo int num objeto Integer e vice-versa. (O mesmo vale para double e Double, byte e Byte, boolean e Boolean e qualquer outro wrapper de tipo primitivo).

Para ordenar o ArrayList (ou o Vector), use o método Sort da classe Collections. Para usa-lo, ou seus objetos tem que implementar Comparable (como é o caso do Integer), ou você deve fornecer um Comparator. No seu caso:

Collections.sort(suaLista);

Se você já tem o array contendo os objetos de sua lista, você pode converte-lo num ArrayList de maneira muito fácil:

int[] numeros = {4, 5, 1, 3} List<Integer> suaLista = Arrays.asList(numeros); Collections.sort(suaLista);

Outra alternativa, caso os números não se repitam, é usar um set ao invés de uma lista. No caso, um tree set. Assim, os números serão automaticamente ordenados:

//Criamos um tree set com o conteúdo do ArrayList de números Set<Integer> set = new TreeSet<Integer>(Arrays.asList(numeros)); System.out.println(set); //Imprimimos e já está ordenado!! set.add(0); System.out.println(set); //Imprimimos e continua ordenado!!

LPJava

so mais uma coisa Integer nao é o mesmo que int nao possivel criar um Vector de inteiros, ele aceita apenas objetos porem com o recurso de autoboxing do java 5 permite vc colocar int dentro de um Vector mais no fundo da coisa é um objeto…

Vector<Integer> v = new Vector<Integer>();
v.add(8);

isso funciona no java 5 devido o recurso de autoboxing em versao anterior nao funciona…

flw!!

jPscoralicK

sakei agora.

vlw!

jPscoralicK

Só mais uma coisa:

Testei o código abaixo no eclipse, e não consegui rodar porque um dos erros era que a parametrização só é possível no Java Tiger, como vcs disseram.

Como faço pra mudar isso?

List<Integer> suaLista = new ArrayList<Integer>();
neohacker

Bem é que aqui vc está usando Generics que foi incluido no Java 5.
Vc pode colocar assim:

List suaLista = new ArrayList();

Só que agora ele pode aceitar qualquer tipo de Object e não mais somente Integer

jPscoralicK

Ok, mas como faço pra “instalar” o “usar” o java 5 no eclipse?

neohacker

Primeiramente instale o JDK 1.5, depois abra o eclipse com o seu projeto atual, click com o botão direito na pasta do projeto, build path, libraries, click em JRE e edit, selecione alternate JRE e finalmente em Installed JREs.
Acho que com isso vc ja consegue, espero ter ajudado

Jair_Rillo_Junior

Primeiro é claro você deve fazer o download do SDK 5 ou então o mais novo 6 e instalar na sua maquina.

Dentro do Eclipse, vá em Window -&gt Preferences -&gt Java -&gt Installed JREs
ai você modifica qual JVM o Eclipse deve ler.

Caso você também queira trabalhar com Annotations (acho que não é seu caso, mas vale por aprendizado), você deve clicar com o botao direito do mouse em cima do projeto, depois em Properties -&gt Java Compiler e muda o Compiler compliance level, para Java 5 ou 6, dependendo da sua JVM

jPscoralicK

Agora sim!

valeu!

Criado 9 de maio de 2007
Ultima resposta 10 de mai. de 2007
Respostas 14
Participantes 8