Estou tentando comparar duas ArrayList's, sendo que ao final da comparação sejam exibidos apenas os elementos da lista1 não presentes na lista2, dentro dos parâmetros comparados.
Cada instância das ArrayList contém um objeto PORTA.
O problema está que não estou conseguindo fazer isto de forma exclusiva.
public class Porta {
private int slot;
private int port;
private String parameter;
public Porta(int s, int p, String par) {
this.setSlot(s);
this.setPort(p);
this.setParam(par);
}
public void setSlot(int s) {
this.slot = s;
}
public int getSlot() {
return this.slot;
}
public void setPort(int p) {
this.port = p;
}
public int getPort() {
return this.port;
}
public void setParam(String p) {
this.parameter = p;
}
public String getParam() {
return this.parameter;
}
}
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Porta> lista1 = new ArrayList<Porta>();
ArrayList<Porta> lista2 = new ArrayList<Porta>();
Porta p1 = new Porta(1, 1, "abcd");
Porta p2 = new Porta(1, 2, "defg");
Porta p3 = new Porta(1, 4, "defg");
Porta p4 = new Porta(1, 6, "hijk");
lista1.add(p1);
lista1.add(p2);
lista1.add(p3);
lista1.add(p4);
Porta p5 = new Porta(1, 2, "defg");
Porta p6 = new Porta(1, 4, "defg");
lista2.add(p5);
lista2.add(p6);
for (Porta a : lista1) {
for (Porta b : lista2) {
if (!(a.getSlot() == b.getSlot() && a.getPort() == b.getPort())) {
System.out.println("Slot " + a.getSlot() + " Porta " + a.getPort());
}
}
}
}
}