Problemas com o ArrayList

6 respostas
M

Estou tentando fazer uma calculadora recebendo todos os numeros e os operandos em uma arraylist para analisar e executar as operações em ordem de prioridade (* antes de +).

Aqui tem uma simplificação do código (os “for” não estão ai mas existem):

ArrayList a = nuw ArrayList(20);
int i;

a.get(0) = 10; a.get(1) = /; a.get(2) = 2; a.get(3) = +; a.get(4) = 10;

a.get(i-1) = a.get(i-1)+a.get(i+1); // Estou calculando os fatores, sendo que a posição a.get(i)=+ (Nesse caso).

Depois eu coloco os valores os valores get(3) e get(4) em get(1) e get(2) respectivamente e coloco um valor nulo nas demais posições. Então faço a operação de adição.

O problema esta no fato de da ArrayList não fazer a atribuição acima.

6 Respostas

ignacio83

Para adicionar elementos faça:

a.add(algumaCoisa);
M

Isso eu to fazendo so que a ArrayKist era para ir zerando (atribuição de valores nulos) so que ela não fazer e não traz os últimos elementos para a frente.

M

Eu coloco um a.add(i,a.get(i+1))(por exemplo); só que não acontece nada.

T

new ArrayList(20)” não é a mesma coisa que “new Object[20]”, ou seja, o valor 20 não serve para criar um arraylist com 20 elementos nulos e sim só para deixar reservadas 20 posições.

http://java.sun.com/javase/6/docs/api/java/util/ArrayList.html

capacity (capacidade) != size (tamanho).

Para preencher o arraylist com 20 posições null, você tem de inserir os 20 elementos null. Basta fazer um “for”.

ignacio83

O método get() não faz nenhuma atribuição de valores…

Se quer demover algo utilize o método remove:

Se ainda não for isso q vc quer post o seu código inteiro.

M

Blz vou tentar o metodo remove.

Criado 12 de agosto de 2009
Ultima resposta 12 de ago. de 2009
Respostas 6
Participantes 3