Ajuda for e arraylist

14 respostas
devops

Bom dia pessoal, preciso de ajuda. Procuro na Internet uma forma de ler dois valores do teclado n e m em seguida salvar os valores de i em um Arraylist. Posteriormente, pretendo varrer o arraylist buscando alguns dados. Alguém sugere um trecho de código?

ArrayList<Integer> lista = new ArrayList<Integer>();
	for(i=0; i <= n; i = n - m) {
		//lista.add(i);
		System.out.println(i);
		System.out.println("items:" + lista.add(i));

14 Respostas

darlan_machado

De onde veio esse i?

Explica melhor, mostra mais do código, pois tá confuso.

devops

Utilizei o i para varrer o for

import java.util.Scanner;
import java.util.ArrayList;

public class LeituraValores {

public static void main(String[] args) {

Scanner ler = new Scanner(System.in);
int i, j , m, n;
	
	System.out.print("Digite um valor inicial:\n ");
	n = ler.nextInt();
	
	System.out.print("Ok ! \n Digite um intervalo: \n ");
	m = ler.nextInt();
	
	ArrayList<Integer> lista = new ArrayList<Integer>();
	for(i=0; i <= n; i = n - m) {
		//lista.add(i);
		System.out.println(i);
		System.out.println("items:" + lista.add(i));
	}
}

}

darlan_machado

Ok, já sabemos de onde vem o i. Mas e???
Qual o objetivo?
Você já está lendo os dois valores:

System.out.print("Digite um valor inicial:\n ");
n = ler.nextInt();

System.out.print("Ok ! \n Digite um intervalo: \n ");
m = ler.nextInt();

E já está inserindo o valor de i numa lista

ArrayList<Integer> lista = new ArrayList<Integer>();
for(i=0; i <= n; i = n - m) {
    //lista.add(i);
    System.out.println(i);
    System.out.println("items:" + lista.add(i));
}

Embora tenha comentado a inserção, obviamente.

devops

Então, o i foi utilizado para atribuir a diferença gerada no intervalo entre n e m. Nesse código não deu certo

darlan_machado

Olhe essa linha e me diga onde tá o erro ali.
Se a ideia é você andar de n até m, por que i começa com valor 0? E por que a condição de incremento é i = n - m, supondo que n é menor que m? Obviamente você entrou num loop infinito.

devops

Esse código deu certo. Quero salvar os dados impressos desse código em um arraylist. Depois pretendo percorrer esse array e imprimir o restante dos números no intervalo de n.

public class LeituraValores  {

public static void main (String args[]) {

Scanner ler = new Scanner(System.in);
System.out.print("Digite um valor inicial:\n ");
		n = ler.nextInt();
		
		System.out.print("Ok ! \n Digite um intervalo: \n ");
		m = ler.nextInt();
		
		for(i=1;i<=n;i=i+m) {
			
			for(j=n;j<=n;j=n--)
				
				System.out.printf(" As regiões selecionadas foram: %d com i \n ", i);
				System.out.printf(" As regiões selecionadas foram: %d com j \n ", j);
				
				
		}
	}
}
darlan_machado

Cara, você está com muitos problemas para entender isso, não?

Me explica o que cada parte desse trecho de código tá fazendo

devops

Não, na verdade é teste. Procuro uma forma de jogar esses valores em um arraylist

darlan_machado

Quais valores cara?

devops

Por exemplo, se utilizar o código abaixo inserindo 20 e 2 imprime uma sequencia de de 1 3 5 7 9 e 11. Quero salvar a sequencia em um arraylist

public class LeituraValores  {
		public static void main (String args[]) {
			Scanner ler = new Scanner(System.in);

			System.out.print("Digite um valor inicial:\n ");
			n = ler.nextInt();
			
			System.out.print("Ok ! \n Digite um intervalo: \n ");
			m = ler.nextInt();
			
			for(i=1;i<=n;i=i+m) {
				
				//for(j=n;j<=n;j=n--)
					
					System.out.printf(" As regiões selecionadas foram: %d com i \n ", i);
					//System.out.printf(" As regiões selecionadas foram: %d com j \n ", j);
					
					
			}
		}
	}
darlan_machado

Já tentou adicionar esses valores ao arraylist?

devops

Sim, agora os dados impressos vieram como true. Se caso fosse imprimir em numeros

darlan_machado

Cara, leia a documentação da interface list e, especificamente, do método add que você vai entender por que disso.

devops

blza, obrigado

Criado 17 de setembro de 2019
Ultima resposta 17 de set. de 2019
Respostas 14
Participantes 2