eu preciso criar uma lista que utilize a idade do usuário como chave e o
nome como informação. Onde quando eu for buscar uma pessoa pela idade seja exibido o
nome da mesma. podendo ser cadastrada apenas uma pessoa por idade.
preciso solicitar ao usuário o num de pessoas cadastradas, a idade e o nome e ao termino devo listar todas as pessoas no seguinte formato
idade->nome
exemplo: 27-> Pedro
isso foi o que fiz mas algo errado não está certo
import java.util.Scanner;
public class Pessoa {
public String nome;
public int idade;
Pessoa[] lista;
Scanner in = new Scanner(System.in);
Pessoa[] cadastrar(Pessoa pessoa) {
System.out.println("digite o número de pessoas para o cadastro: ");
int numero = in.nextInt();
Pessoa[] lista = new Pessoa[numero];
for (int i = 0; i<lista.length; i++) {
System.out.println("digite o nome da pessoa: ");
pessoa.nome = in.next();
System.out.println("digite a idade: ");
pessoa.idade = in.nextInt();
if(lista[i] == null) {
lista[i] = pessoa;
}
else {
System.out.println("não foi possível cadastrar. ");
}
}
return lista;
}
Você só está cadastrando a lista e retornando ela no método de cadastro. Em nenhum momento você tenta exibir essa lista pelo código que você nos passou…
O método main pra poder começar a executar seu programa.
Chamar o método de cadastrar e inserir as Pessoas
Pegar a sua lista retornada no cadasto e iterar sobre ela usando o for (que você já aprendeu)
Dentro do seu for, para cada pessoa você usa o método (que também já tem no seu código) para imprimir o resultado da sua lista respeitando o formato do seu exercício.
Tenta usando isso que eu te disse e se tiver alguma dificuldade posta aí.
Você está usando duas variavel lista uma como atributo de classe e uma no metodo cadastrar. Use apenas a lista que vc declara como atributo de classe e mude se metodo para void ao invés de Pessoa []