rendered paste bodyimport java.util.HashSet;public class Test { public static void main(String[] args) { HashSet<JObject> objects = new HashSet<JObject> (); JObject one = new JObject ("same", 1); JObject two = new JObject ("same", 1); System.out.println (one.equals (two)); System.out.println (two.equals (one)); objects.add (one); objects.add (two); System.out.println ("objects.size() = " + objects.size ()); }}class JObject { private String name; private int age; public JObject() { this("Unknown", 0); } public JObject(String name) { this(name, 0); } public JObject(String name, int age) { this.name = name; this.age = age; } public String getName() { return this.name; } public int getAge() { return this.age; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public boolean equals(JObject obj) { return (this.compareTo(obj) == 0); } public int compareTo(JObject obj) { int comparison = 0; if(this.age == obj.age) { // Could just as equally be case sensative... doesn't matter. comparison = this.name.compareToIgnoreCase(obj.name); } else { if(this.age < obj.age) { comparison = -1; } else { comparison = 1; } } return comparison; } public String toString() { return ("JObject( name = '" + this.name + "', age = " + this.age + " )"); }}