I have this array of objects, and I would like to go through and remove the author repeated by name, but I can not.
public class Pessoa {
private Autor autor[];
int cont = 0;
public Pessoa(Autor autor[]) {
this.autor = autor;
}
public Autor[] getAutor() {
return autor;
}
public void adiciona(Autor a) {
this.autor[cont++] = a;
}
}
public class Autor {
private String nome;
public Autor(String nome) {
this.nome = nome;
}
@Override
public boolean equals(Object obj) {
if(!(obj instanceof Autor))
return false;
Autor autor = (Autor) obj;
return this.nome.equals(autor.nome);
}
@Override
public String toString() {
return "Meu nome é: " + nome;
}
}
public class Principal {
public static void main(String[] args) {
Pessoa p = new Pessoa(new Autor[3]);
Autor a1 = new Autor("Leonardo");
Autor a2 = new Autor("Leonardo");
Autor a3 = new Autor("Joao");
p.adiciona(a1);
p.adiciona(a2);
p.adiciona(a3);
Autor autor[] = p.getAutor();
for(Autor a : autor) {
if(a != null) {
System.out.println(a);
}
}
}
}
I wanted to remove the duplicate name, or leave null, is there any way?
for(Autor a : autor) {
if(a != null) {
System.out.println(a);
}
}