Oi gente, eu tenho uma tarefa de programação para fazer, porem eu to quebrando muito a cabeça com a parte parte de array, no exercício eu preciso fazer uma classe Chamada Pessoa, que vão ter nome e idade, então eu preciso fazer um array de 3 pessoas e ordena-los em ordem alfabética utilizando o compareTO, porem eu não consigo declarar meu Array dentro do meu método, alguém pode me ajudar por favor, to sofrendo demais.
Posta o código que você fez, ou tentou fazer até agora.
Após colar, selecione todo ó código e clique nesse botão para formatá-lo:
![]()
package stringordenado;
import java.util.Scanner;
public class Pessoa{
private String nome;
private int idade;
public Pessoa(String nome, int idade){
this.nome = nome;
this.idade = idade;
}
public Pessoa(){
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
Scanner n = new Scanner(System.in);
public void comparararray(){
Pessoa[] p = new Pessoa[3];
}
}
Primeiro você cria seu próprio Comparator:
public class PessoaComparator
implements Comparator<Pessoa> {
@Override
public int compare(Pessoa o1, Pessoa o2) {
return o1.getNome().compareTo(o2.getNome());
}
}
Depois passa usa o método sort da classe Arrays, o primeiro argumento é o array de pessoas, o segundo o comparator.
public class OrdernarArray {
public static void main(String[] args) {
Pessoa[] pessoas = {
new Pessoa("Silvano", 16),
new Pessoa("Ademir", 21),
new Pessoa("Gustavo", 17)
};
Arrays.sort(pessoas, new PessoaComparator());
System.out.println(Arrays.toString(pessoas));
// [Pessoa{nome='Ademir', idade=21}, Pessoa{nome='Gustavo', idade=17}, Pessoa{nome='Silvano', idade=16}]
}
}
Eu consigo apresentar esses valores usando um toString() tambem?
Sim
Eu tentei fazer o seu codigo, e executou o programa, porem so esta mostrando o endereco na memoria, o que eu tenho que fazer para arrumar isso?
Vai na sua classe Pessoa e sobrescreve o método toString().
public class Pessoa() {
...
@Override
public String toString() {
return "Pessoa{nome=" + this.nome +
", idade=" + this.idade + "}";
}
}
Foiiiii, cara muito obrigado mesmo, gostei muito desse fórum, obrigado por me ensinar esse código novo.
Abração.