0
Good evening, everyone!
I’m having second thoughts about comparing the duplicate elements in ArrayList
created, in the case of my code I would like that if it has already been realized the loan to a person (in case Alex) it is not possible to make a new loan for Alex, but it is always allowing to realize more than one loan for the same person, can help me please?
I am using the equals
, but if you have some other way to solve without problems.
From now on, thank you!
Like my code was originally
public static void main(String[] args) {
ArrayList<Emprestimo> arrayemp1 = new ArrayList();
System.out.println("\n== EMPRESTIMO ==");
arrayemp1.add(new Emprestimo("SUPER HOMEM", "2/2/2020", "2/2/2020", "Alex", "Gaspar"));
arrayemp1.add(new Emprestimo("SUPER HOMEM", "2/2/2020", "2/2/2020", "Alex", "Gaspar"));
Emprestimo emprestimo = new Emprestimo();
emprestimo.addEmprestimo(arrayemp1.get(0));
emprestimo.addEmprestimo(arrayemp1.get(1));
}
public class Emprestimo {
private ArrayList<Emprestimo> emprestimo = new ArrayList();
public void addEmprestimo(Emprestimo emp1){
if(emprestimo.equals(emp1)){
System.out.println("Não é possível realizar mais que um empréstimo.");
}else{
emprestimo.add(emp1);
System.out.println("Emprestimo realizado com sucesso.");
}
}
public void imprimirEmprestimo(){
for (int i=0; i<emprestimo.size(); i++){
System.out.println(emprestimo.get(i));
}
}
}
Like my code is now
public class ControlaRevista {
public static void main(String[] args) {
ListaEmprestimo lista = new ListaEmprestimo();
System.out.println("\n== EMPRESTIMO ==");
lista.addEmprestimo(new Emprestimo("SUPER HOMEM", "2/2/2020", "2/2/2020", "Alex", "Gaspar"));
lista.addEmprestimo(new Emprestimo("SUPER HOMEM", "2/2/2020", "2/2/2020", "Alex", "Gaspar"));
lista.imprimirEmprestimos();
}
}
public final class Emprestimo {
private final Amigo amigo = new Amigo();
private final Colecao colecao = new Colecao();
private final String nome;
private final String dataEmprestimo, dataDevolucao;
private final String nomeAmigo;
private final String nomeLocal;
public Emprestimo(String nome, String dataEmprestimo, String dataDevolucao, String nomeAmigo, String nomeLocal) {
this.nome = nome;
this.dataEmprestimo = dataEmprestimo;
this.dataDevolucao = dataDevolucao;
this.nomeAmigo = nomeAmigo;
this.nomeLocal = nomeLocal;
}
@Override
public String toString() {
return "Emprestimo{" + "Amigo=" + amigo.nomeAmigo + ", "+ colecao + ", dataEmprestimo=" + dataEmprestimo + ", dataDevolucao=" + dataDevolucao +'}';
}
@Override
public int hashCode() {
return Objects.hash(nome,dataEmprestimo,dataDevolucao,nomeAmigo,amigo);
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof Emprestimo)) return false;
Emprestimo outro = (Emprestimo) obj;
return Objects.equals(nome, outro.nome)
&& Objects.equals(dataEmprestimo, outro.dataEmprestimo)
&& Objects.equals(dataDevolucao, outro.dataDevolucao)
&& Objects.equals(nomeAmigo, outro.nomeAmigo)
&& Objects.equals(amigo, outro.amigo);
}
}
public class ListaEmprestimo {
private Collection<Emprestimo> emprestimos = new LinkedHashSet<>();
public ListaEmprestimo(){
}
public void addEmprestimo(Emprestimo emp1){
if (emprestimos.add(emp1)) {
System.out.println("Não é possível realizar mais que um empréstimo.");
} else {
System.out.println("Empréstimo realizado com sucesso.");
}
}
public void imprimirEmprestimos() {
for (Emprestimo e : emprestimos) {
System.out.println(e);
}
}
}
public class Amigo{
public String nomeAmigo,telefone,localAmigo;
public Amigo(){
}
public Amigo(String nomeAmigo, String telefone, String localAmigo) {
this.nomeAmigo = nomeAmigo;
this.telefone = telefone;
this.localAmigo = localAmigo;
}
private ArrayList<Amigo> amigo = new ArrayList();
public void addAmigo(Amigo amigo1){
amigo.add(amigo1);
}
public void imprimirAmigo(){
for (int i=0; i<amigo.size(); i++){
System.out.println(amigo.get(i));
}
}
public void validarEmprestimo(){
// if(amigo.get(1) ){
System.out.println("Não é possível realizar mais que um empréstimo");
//}
}
@Override
public String toString() {
return "Amigo{" + "nomeAmigo=" + nomeAmigo + ", telefone=" + telefone + ", localAmigo=" + localAmigo + '}';
}
public String getNome() {
return nomeAmigo;
}
public String getTelefone() {
return telefone;
}
public String getLocalAmigo() {
return localAmigo;
}
}
public class Colecao{
public String nome;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@Override
public String toString() {
return "Colecao{" + "nome=" + nome + '}';
}
}
What’s in the classes
Amigo
andColecao
?– Victor Stafusa
I just updated the post. Thanks for the feedback Victor.
– Alex J