Dúvida Exercício Programação Java

Tenho dúvida neste exercício, não entendo como fazer para armazenar 10 pessoas na classe agenda. Deveria:

  • Utilizar vetor?
  • ArrayList?
  • Instanciar 10 objetos da classe Pessoa?

Estou fazendo o curso pela Udemy, outros exercícios eu consegui fazer, mas este não.
Obrigado!

Fala @jcbonamigo, beleza?

Cara, gostei desse exercício, bacaninha.

Eu acho que usaria um ArrayList de tamanho 10, isto é, um atributo pessoa do tipo ArrayList.

P.S. Acho, empiricamente, que ArrayList é um tipo de vetor.

1 curtida

Você pode usar qualquer uma das opções, só vai ter que ajustar seu código pra cada caso. E depende também se o material indica alguma solução específica, ou se deixa à seu critério.

Em termos gerais, a maneira mais simples seria usar ArrayList. Você pode tanto armazenar instâncias de uma classe Pessoa, que tem os atributos nome, idade e altura, quanto armazenar essas informações em três Arraylists diferentes. O Arraylist não tem tamanho fixo, então você precisa controlar quantos elementos existem antes de realizar as operações.

Também é possível usar um vetor de Pessoa (ou 3, um para cada atributo), com tamanho fixo em 10. Nesse caso, você precisa controlar não só quantos elementos, mas qual a próxima posição vazia ao realizar operações de inserir, além de mover os elementos quando faz uma remoção.

Ter 10 instâncias de Pessoa é possível, mas acaba gerando um monte de ifs pra saber qual está preenchida ou não, em qualquer uma das operações que você quiser realizar. Eu não recomendo.

Abraço.

1 curtida

Desenvolvi parte da minha solução, gostaria de uma opinião, para saber se estou no caminho correto. E também tenho uma dúvida:
Tem como criar os objetos Pessoa, de uma maneira mais automática, porque assim, teria que criar 10 instâncias suando néh…

Valeu!


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

public class ProgramaAgenda {
	
	public static void main(String[] args) {
		
		Scanner entrada = new Scanner(System.in);
		Pessoa pessoa1 = new Pessoa();
		Pessoa pessoa2 = new Pessoa();
		Pessoa pessoa3 = new Pessoa();
		ArrayList<Pessoa> contato = new ArrayList<Pessoa>();
		
		System.out.println("Informe o 1º contato da sua agenda: \nNome:");
		pessoa1.nome = entrada.next();
		System.out.println("Idade: ");
		pessoa1.idade = entrada.nextInt();	
		System.out.println("Altura: ");
		pessoa1.altura = entrada.nextFloat();	
		contato.add(pessoa1);
		
		System.out.println("Informe o 2º contato da sua agenda: \nNome:");
		pessoa2.nome = entrada.next();
		System.out.println("Idade: ");
		pessoa2.idade = entrada.nextInt();	
		System.out.println("Altura: ");
		pessoa2.altura = entrada.nextFloat();	
		contato.add(pessoa2);
		
		System.out.println("Informe o 3º contato da sua agenda: \nNome:");
		pessoa3.nome = entrada.next();
		System.out.println("Idade: ");
		pessoa3.idade = entrada.nextInt();	
		System.out.println("Altura: ");
		pessoa3.altura = entrada.nextFloat();	
		contato.add(pessoa3);
		
		entrada.close();
		
		for (Pessoa meuContato : contato) {
			
			System.out.println(meuContato.getNome());
			System.out.println(meuContato.getIdade());
			System.out.println(meuContato.getAltura());
		
		}
		
	}
}

public class Pessoa {

	public String nome;
	public int idade;
	public float altura;
	
	public Pessoa() {
	}
	
	public String getNome() {
		return nome;
	}
	public int getIdade() {
		return idade;
	}
	public float getAltura() {
		return altura;
	}
	
}

Se os atributos são public então não tem necessidade de fazer métodos get.

1 curtida