/* package whatever; // don't place package name! */
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone {
public static void main
(String[] args
) {
Collection
<Entity
> first
= new ArrayList
<>(Arrays.
asList(new Entity("id1",
1),
Collection
<Entity
> second
= new ArrayList
<>(Arrays.
asList(new Entity("id2",
3),
first.forEach(entity -> {
if (second.contains(entity)) {
second.remove(entity);
}
});
second.addAll(first);
}
}
long id;
this.name = name;
this.id = id;
}
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
return name;
}
public void setName
(String name
) { this.name = name;
}
@Override
public int hashCode() {
int hash = 7;
hash = 59 * hash + (int) (this.id ^ (this.id >>> 32));
return hash;
}
@Override
public boolean equals
(Object obj
) { if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
if (this.id != other.id) {
return false;
}
return true;
}
@Override
return "Entity{" + "name=" + name + ", id=" + id + '}';
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CmltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOwppbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lIHsKCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CgogICAgICAgIENvbGxlY3Rpb248RW50aXR5PiBmaXJzdCA9IG5ldyBBcnJheUxpc3Q8PihBcnJheXMuYXNMaXN0KG5ldyBFbnRpdHkoImlkMSIsIDEpLAogICAgICAgICAgICAgICAgbmV3IEVudGl0eSgiaWQxIiwgMiksIG5ldyBFbnRpdHkoImlkMSIsIDMpKSk7CgogICAgICAgIENvbGxlY3Rpb248RW50aXR5PiBzZWNvbmQgPSBuZXcgQXJyYXlMaXN0PD4oQXJyYXlzLmFzTGlzdChuZXcgRW50aXR5KCJpZDIiLCAzKSwKICAgICAgICAgICAgICAgIG5ldyBFbnRpdHkoImlkMiIsIDQpLCBuZXcgRW50aXR5KCJpZDIiLCA1KSkpOwoKICAgICAgICBmaXJzdC5mb3JFYWNoKGVudGl0eSAtPiB7CiAgICAgICAgICAgIGlmIChzZWNvbmQuY29udGFpbnMoZW50aXR5KSkgewogICAgICAgICAgICAgICAgc2Vjb25kLnJlbW92ZShlbnRpdHkpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgc2Vjb25kLmFkZEFsbChmaXJzdCk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHNlY29uZCk7CiAgICB9Cn0KCmNsYXNzIEVudGl0eSB7CgogICAgU3RyaW5nIG5hbWU7CiAgICBsb25nIGlkOwoKICAgIHB1YmxpYyBFbnRpdHkoU3RyaW5nIG5hbWUsIGxvbmcgaWQpIHsKICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOwogICAgICAgIHRoaXMuaWQgPSBpZDsKICAgIH0KCiAgICBwdWJsaWMgRW50aXR5KCkgewogICAgfQoKICAgIHB1YmxpYyBsb25nIGdldElkKCkgewogICAgICAgIHJldHVybiBpZDsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBzZXRJZChsb25nIGlkKSB7CiAgICAgICAgdGhpcy5pZCA9IGlkOwogICAgfQoKICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKICAgICAgICByZXR1cm4gbmFtZTsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBzZXROYW1lKFN0cmluZyBuYW1lKSB7CiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKICAgIH0KCiAgICBAT3ZlcnJpZGUKICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CiAgICAgICAgaW50IGhhc2ggPSA3OwogICAgICAgIGhhc2ggPSA1OSAqIGhhc2ggKyAoaW50KSAodGhpcy5pZCBeICh0aGlzLmlkID4+PiAzMikpOwogICAgICAgIHJldHVybiBoYXNoOwogICAgfQoKICAgIEBPdmVycmlkZQogICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKICAgICAgICBpZiAodGhpcyA9PSBvYmopIHsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIGlmIChvYmogPT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICAgIGlmIChnZXRDbGFzcygpICE9IG9iai5nZXRDbGFzcygpKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgZmluYWwgRW50aXR5IG90aGVyID0gKEVudGl0eSkgb2JqOwogICAgICAgIGlmICh0aGlzLmlkICE9IG90aGVyLmlkKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgQE92ZXJyaWRlCiAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgewogICAgICAgIHJldHVybiAiRW50aXR5eyIgKyAibmFtZT0iICsgbmFtZSArICIsIGlkPSIgKyBpZCArICd9JzsKICAgIH0KCn0K
[Entity{name=id2, id=4}, Entity{name=id2, id=5}, Entity{name=id1, id=1}, Entity{name=id1, id=2}, Entity{name=id1, id=3}]