/* package whatever; // don't place package name! */
import java.util.*;
import java.util.stream.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
HashSet<A> ha1 = new HashSet<A>();
ha1.add(new A(1));
ha1.add(new A(2));
ha1.add(new A(3));
HashSet<A> ha2 = new HashSet<A>();
ha2.add(new A(2));
ha2.add(new A(3));
ha2.add(new A(4));
HashSet<B> hb =
Stream
.concat(ha1.stream(), ha2.stream())
.map(a -> new B(a.x))
.
collect(Collectors.
toCollection(HashSet::new)); System.
out.
println(hb.
size()); }
}
class A
{
int x;
A(int x) {this.x=x;}
}
class B
{
int x;
B(int x) {this.x=x;}
public int hashCode() {return x;}
public boolean equals
(Object other
) { if (other == null) return false;
B b = (B)other;
return b.x == x;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS51dGlsLnN0cmVhbS4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCUhhc2hTZXQ8QT4gaGExID0gbmV3IEhhc2hTZXQ8QT4oKTsKCQloYTEuYWRkKG5ldyBBKDEpKTsKCQloYTEuYWRkKG5ldyBBKDIpKTsKCQloYTEuYWRkKG5ldyBBKDMpKTsKCQlIYXNoU2V0PEE+IGhhMiA9IG5ldyBIYXNoU2V0PEE+KCk7CgkJaGEyLmFkZChuZXcgQSgyKSk7CgkJaGEyLmFkZChuZXcgQSgzKSk7CgkJaGEyLmFkZChuZXcgQSg0KSk7CgkJSGFzaFNldDxCPiBoYiA9CgkJCVN0cmVhbQoJCQkuY29uY2F0KGhhMS5zdHJlYW0oKSwgaGEyLnN0cmVhbSgpKQoJCQkubWFwKGEgLT4gbmV3IEIoYS54KSkKCQkJLmNvbGxlY3QoQ29sbGVjdG9ycy50b0NvbGxlY3Rpb24oSGFzaFNldDo6bmV3KSk7CgkgICAgU3lzdGVtLm91dC5wcmludGxuKGhiLnNpemUoKSk7Cgl9Cn0KCgoKY2xhc3MgQQp7CiBpbnQgeDsKIFN0cmluZyB5OwogQShpbnQgeCkge3RoaXMueD14O30KfQoKY2xhc3MgQgp7CiBpbnQgeDsKIEIoaW50IHgpIHt0aGlzLng9eDt9CiBwdWJsaWMgaW50IGhhc2hDb2RlKCkge3JldHVybiB4O30KIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb3RoZXIpIHsKIAlpZiAob3RoZXIgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOwogCUIgYiA9IChCKW90aGVyOwogCXJldHVybiBiLnggPT0geDsKIH0KfQ==