Incrementando Array "Automaticamente"

7 respostas
E

Olá pessoal.
Quero saber se tem como eu ir aumentando meu vetor de acordo com o que o usuário digita.
No código que segue abaixo eu peço ao usuario digitar numeros aleatorios, e somo todos os numeros pares digitados.
Só que como vc's podem ver, eu inicializo o vetor com 15 posições. Eu queria era que meu vetor fosse aumentando de tamanho até que o usuario digitasse '0' e finalizasse o programa.

Desde de já, agradeço qualquer ajuda.

package Exercicios;
import java.util.Scanner;

public class lista2_exer4 {
	
	public static void main(String[] args) {
		int num[]=new int[15], soma_pares=0, cont=1, i;
		
		Scanner leia=new Scanner(System.in);
		 System.out.println("Digite os numeros. Digite '0' para finalizar.");

		 do{
		  for(i=0;i<cont;i++){
			System.out.println("Digite o numero "+ i);
			num[i]=leia.nextInt();
			
			if (num[i]!=0){
			cont++;
			 if (num[i]%2==0){
				soma_pares+=num[i];
			 }
			}
		  }
		}while(num[i]!=0);
		
		System.out.println("A soma dos numeros pares é igual a: "+ soma_pares);
		System.out.println("Programa Finalizado!");
	}

}

7 Respostas

Lavieri

Use collections... existe formas de se fazer na mão, mais é tolice ^^ ....

Coleções: Como não usar Arrays

....

List<Integer> todos = new ArrayList<Integer>(0); //cria uma arrayList de tamanho 0

//...
do {
    System.out.println("Digite o "+ (todos.size()+1) + "° numero");
    int num = leia.nextInt();
    todos.add(num);
    if (num%2 == 0)
         somaPares += num;
while(num != 0);

//...
E

Valeu.
Mas se eu quiser verificar se um numero qualquer está dentro dessa coleção.
E se eu quiser imprimir apenas um numero dessa coleção?
Como faço?

Lavieri

elizier:
Valeu.
Mas como é q eu fasso para imprimir todos os numeros dessa coleção?

for (Integer numero: todos) System.out.println(numero);

for (int i = 0; i < todos.size(); i++) System.out.println(todos.get(i));

vc decide ^^ (o 1° método é melhor)

tem ainda o

System.out.println(Arrays.toString(todos.toArray())); //a classe Arrays pertence a java.util, e pode ser usada pra imprimir qualquer array

if (todos.contains(4)) System.out.println("4 esta na coleção");

E

Só mais uma coisa. ^^
Eu tentei usar aqui o sort da biblioteca Arrays e deu erro…
Como faço para ordenar a minha coleção.

E para imprimir apenas um numero dessa coleção? Tipo, apontando a sua posição (como num Array).
Desculpa se estou sendo chato… :lol:

Lavieri

elizier:
Só mais uma coisa. ^^
Eu tentei usar aqui o sort da biblioteca Arrays e deu erro…
Como faço para ordenar a minha coleção.

E para imprimir apenas um numero dessa coleção? Tipo, apontando a sua posição (como num Array).
Desculpa se estou sendo chato… :lol:

para 1 elemento especifico… so vc olhar esse trecho q tinha colocado

for (int i = 0; i < todos.size(); i++) System.out.println(todos.get(i));

ou seja… todos.get(index);

para ordenar Collection vc usa Collections e não Arrays ^^

Collections.sort(todos);

E

Obrigado pela ajuda Lavieri.
Foi bastante esclarecedora.

Lavieri

elizier:
Obrigado pela ajuda Lavieri.
Foi bastante esclarecedora.

que nada … pra sua idade vc ta mandando bem ^^

huuhhu

Explicando a piada estou falando do avatar…

Criado 22 de março de 2009
Ultima resposta 22 de mar. de 2009
Respostas 7
Participantes 2