Java tutorial
import java.util.Set; import java.util.TreeSet; public class Main { public static void main(String[] args) { Set<Item> s = new TreeSet<Item>(); s.add(new Item("item1", 5)); s.add(new Item("item2", 1)); s.add(new Item("item3", 7)); s.add(new Item("item4", 1)); for (Item it : s) { System.out.println("Item is:" + it.getName() + " with value:" + it.getValue()); } } } class Item implements Comparable<Item> { private Integer value; private String name; Item(String name, int val) { this.name = name; this.value = val; } public Integer getValue() { return value; } public void setValue(Integer value) { this.value = value; } public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean equals(Item obj) { if (obj == null) return false; if (obj == this) return true; if (obj.getClass() != getClass()) return false; Item i = (Item) obj; if (i.getValue().equals(getValue()) && i.getName().equals(getName())) return true; return false; } public int compareTo(Item o) { return getValue().compareTo(o.getValue()); } public boolean equals(Object o) { return false; } }