import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
static class Entry {
public Entry
(String name,
int id
) { this.name = name;
this.id = id;
}
public String toString
() { return "(" + name
+ "[" + id
+ "])"; } public boolean equals
(Object o
) { return o
instanceof Entry
&& name.
equals(((Entry
)o
).
name) && id
== ((Entry
)o
).
id; } public int hashCode() {
// System.out.println("hashing " + toString() + "...");
return name.hashCode();
}
private final int id;
}
{
Set<Entry> set = new HashSet<>();
set.add(new Entry("foo", 42));
set.add(new Entry("bar", 1337));
set.add(new Entry("foo", -1));
for(Entry e : set)
System.
out.
print(" [" + e.
hashCode() + "]" + e
); }
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBJZGVvbmUKewoJc3RhdGljIGNsYXNzIEVudHJ5IHsKCQlwdWJsaWMgRW50cnkoU3RyaW5nIG5hbWUsIGludCBpZCkgewoJCQl0aGlzLm5hbWUgPSBuYW1lOwoJCQl0aGlzLmlkID0gaWQ7CgkJfQoJCQoJCXB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7IHJldHVybiAiKCIgKyBuYW1lICsgIlsiICsgaWQgKyAiXSkiOyB9CgkJcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvKSB7IHJldHVybiBvIGluc3RhbmNlb2YgRW50cnkgJiYgbmFtZS5lcXVhbHMoKChFbnRyeSlvKS5uYW1lKSAmJiBpZCA9PSAoKEVudHJ5KW8pLmlkOyB9CgkJcHVibGljIGludCBoYXNoQ29kZSgpIHsKCQkJLy8gU3lzdGVtLm91dC5wcmludGxuKCJoYXNoaW5nICIgKyB0b1N0cmluZygpICsgIi4uLiIpOwoJCQlyZXR1cm4gbmFtZS5oYXNoQ29kZSgpOwoJCX0KCQkKCQlwcml2YXRlIGZpbmFsIFN0cmluZyBuYW1lOwoJCXByaXZhdGUgZmluYWwgaW50IGlkOwoJfQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJU2V0PEVudHJ5PiBzZXQgPSBuZXcgSGFzaFNldDw+KCk7CgkJc2V0LmFkZChuZXcgRW50cnkoImZvbyIsIDQyKSk7CgkJc2V0LmFkZChuZXcgRW50cnkoImJhciIsIDEzMzcpKTsKCQlzZXQuYWRkKG5ldyBFbnRyeSgiZm9vIiwgLTEpKTsKCQlmb3IoRW50cnkgZSA6IHNldCkKCQkJU3lzdGVtLm91dC5wcmludCgiIFsiICsgZS5oYXNoQ29kZSgpICsgIl0iICsgZSk7CgkJU3lzdGVtLm91dC5wcmludGxuKCk7Cgl9Cn0=