Pegar posição de um arraylist e comparar com outro

4 respostas
jjunio_07

Preciso pegar a primeira posição do vet2 e comparar com todas as posiçoes do vetor tex
pra ver se a posição que peguei do vet2 se encontra dentro do vetor tex,
porém quando debugo o codigo ao entrar no for o aux ja pega o vetor vet2 todo e não só a primeira posição
o mesmo acontece com o p2 que já pega o vetor tex todo. se alguém puder ajudar agradeço.

for (int i = 0; i<= vet2.size()-1; i++){ String aux = (String )vet2.get(i); for (int j = 0; j<= tex.size()-1; j++){ String p2 = (String)tex.get(j); if (aux.equals(p2)){ classe = new Token(p,p); vet3.add(classe); } } }

4 Respostas

nel

jjunio_07:
Preciso pegar a primeira posição do vet2 e comparar com todas as posiçoes do vetor tex
pra ver se a posição que peguei do vet2 se encontra dentro do vetor tex,
porém quando debugo o codigo ao entrar no for o aux ja pega o vetor vet2 todo e não só a primeira posição
o mesmo acontece com o p2 que já pega o vetor tex todo. se alguém puder ajudar agradeço.

for (int i = 0; i<= vet2.size()-1; i++){ String aux = (String )vet2.get(i); for (int j = 0; j<= tex.size()-1; j++){ String p2 = (String)tex.get(j); if (aux.equals(p2)){ classe = new Token(p,p); vet3.add(classe); } } }

É um list que você tem? Posta o código completo.

jjunio_07

Na verdade é um código muito grande por que é da matéria de compiladores,
tá agarrando so nessa parte, vou postar as partes mais importantes

peguei o conteudo de duas text areas e coloquei dentro dos vetores

dentro do vetor vet 2 tem [abc ; cds ( )]
e dentro do vetos tex tem [, ; ( )]

ai tenho que achar o ; e os ( ) comparando o vet2 e achando o que ele tem em comum com o tex e armazenar na classe Token

ArrayList tex = new ArrayList();
ArrayList vet2 = new ArrayList();
ArrayList vet3 = new ArrayList();

tex.add(jtaEspeciais.getText());
vet2.add(jtaTexto.getText());

for (int i = 0; i<= vet2.size(); i++){
   String p = (String )vet2.get(i);
   for (int j = 0; j<= tex.size(); j++){
       String p2 = (String)tex.get(j);
        if (p.equals(p2)){
           classe = new Token(p,p);
           vet3.add(classe);
         }
    }
}
nel

Cara, o que tem dentro do seu ArrayList e o que precisa exatamente?
E se é um ArrayList de String, faça assim:

List<String> array = new Arraylist<String>();

Deixe implícito. Quando for mostrar o que tem dentro do vetor, mostra assim:

0 = x

1 = ;

2 = ()

Só para ficar claro o que pode ter em cada posição e o que tu quer.

E

Use e abuse das outras coleções (como HashSet e TreeSet) para evitar ter de procurar coisas dentro de uma lista pelo método estúpido (busca linear).

Por exemplo, se você tem uma lista fixa de operadores, pode criar um Set operadores = new HashSet(), e preencher essa lista com os operadores:

operadores.add ("+");
operadores.add ("-");

e para checar se está nesse conjunto “operadores”, use “operadores.contains”. Aí você não precisa ficar fazendo essas bizarrices de ficar pondo um for dentro do outro :frowning:

Criado 11 de junho de 2012
Ultima resposta 11 de jun. de 2012
Respostas 4
Participantes 3