[RESOLVIDO] Ajuda com arrayList

6 respostas
java
E

Estou fazendo um trabalho com imagens, e resumi meu problema no seguinte, o usuário informa posições, e não deve imprimir essas posições, segue exemplo do código:

import java.util.ArrayList;


public class Teste {


public static void main(String[] args) {



	//criei ou array list, com posicoes que usuario nao quer mostrar,
	//exemplo:
	//se o usuário informar 0, não mostrar a posicao 0 do numero de amostras, se informar 1, nao informar o
	//numero 1 de amostras
	//se informar 1 e 3, não informar a posicao 1 e 3
	
	ArrayList<Integer> desconhecida=new ArrayList<Integer>();

	desconhecida.add(0);
	desconhecida.add(2);

	ArrayList<Integer> numero_de_amostras=new ArrayList<Integer>();
	
	numero_de_amostras.add(0);
	numero_de_amostras.add(1);
	numero_de_amostras.add(2);
	numero_de_amostras.add(3);
	
	for (int i = 0; i < numero_de_amostras.size(); i++) {
	
		for (int j = 0; j < desconhecida.size(); j++) {
			
			if(numero_de_amostras.get(j)!=i){
									
				System.out.println(numero_de_amostras.get(i));
				
			}
			
		}
	}
	//Porem gostaria de mostrar 1 e 3, pois informei
	//	desconhecida.add(0);
	//desconhecida.add(2);
	//posicao 0 e 2
	
	



}
}

Esta saindo o seguinte:

0
1
2
2
3
3

6 Respostas

E

O if fica assim:

if(desconhecida.get(j)!=i){					
    System.out.println(numero_de_amostras.get(i));
}
Dragoon

Como assim?
Pergunta está sem nexo!

E

como segue o codigo, desconhecida.add(0);
desconhecida.add(2);, seria os valores que o usuario informou, no caso, eu informei a posicao 0 e 2, e quero que o programa imprima 1 e 3 :grinning:

Sandro_Machado

Bom há diversos problemas

1 - você está testando o segundo for com um if, ele vai testar todas a posições do array desconhecidas, e então vai imprimir caso verdadeiro, caso verdadeiro vai imprimir tanto quanto o numero de posições do array desconhecidas, por isso os números que você imprime se repetem.

2 - Integer se compara com equals não com == , para isto use int ou altere para equals.

abaixo +ou- como deve funcionar, não compilei no IDE

public static void main(String[] args) {

    //criei ou array list, com posicoes que usuario nao quer mostrar,
    //exemplo:
    //se o usuário informar 0, não mostrar a posicao 0 do numero de amostras, se informar 1, nao informar o
    //numero 1 de amostras
    //se informar 1 e 3, não informar a posicao 1 e 3
    ArrayList<Integer> desconhecida = new ArrayList<Integer>();

    desconhecida.add(0);
    desconhecida.add(2);

    ArrayList<Integer> numero_de_amostras = new ArrayList<Integer>();

    numero_de_amostras.add(0);
    numero_de_amostras.add(1);
    numero_de_amostras.add(2);
    numero_de_amostras.add(3);

    for (int i = 0; i < numero_de_amostras.size(); i++) {
        boolean possui = false;
        for (int j = 0; j < desconhecida.size(); j++) {
            if (numero_de_amostras.get(i).equals(desconhecida.get(j))) {
                possui = true;
                break;
            }
        }
        if (possui == false) {
            System.out.println(numero_de_amostras.get(i));
        }
    }
    //Porem gostaria de mostrar 1 e 3, pois informei
    //	desconhecida.add(0);
    //desconhecida.add(2);
    //posicao 0 e 2
}
E

Obrigado :grinning:, isso mesmo, valeu muito obrigado.

Sandro_Machado

por nada amigo, encerre o tópico pra nós, abraços

Criado 22 de agosto de 2016
Ultima resposta 23 de ago. de 2016
Respostas 6
Participantes 3