Tak jak w temacie, nie za bardzo czaję czemu wyświetlana jest wartość key z pierwszego PUT'a ale już value z druga PUT'a....
Oto kod (kod czysty ?):
import java.util.Map;
import java.util.TreeMap;
class ClassA implements Comparable{
private int phoneNumber;
public ClassA(int newPhoneNumber) {
phoneNumber = newPhoneNumber;
}
public String toString(){
return "" + phoneNumber;
}
public static void main(String[] args) {
TreeMap<ClassA, Object> treeMap = new TreeMap<> ();
ClassB bob = new ClassB ("bob", "boss", 12345);
ClassA phoneBob = new ClassA (bob.phoneNumber);
ClassC bobAddress = new ClassC ("jamaica", 567890);
ClassA phoneBobAddress = new ClassA (bobAddress.phoneNumber);
treeMap.put (phoneBob,bob);
treeMap.put (phoneBobAddress,bobAddress);
// printTreeMap(treeMap);
for(Map.Entry<ClassA, Object> entry : treeMap.entrySet ()){
System.out.println (entry.getKey () + "/" + entry.getValue () );
}
}
@Override
public int compareTo(Object o) {
return 0;
}
}
class ClassB{
private String name, surname;
int phoneNumber;
ClassB(String name, String surname, Integer phoneNumber){
this.name = name;
this.surname = surname;
this.phoneNumber = phoneNumber;
}
public String toString(){
return this.name + ", " + this.surname;
}
}
class ClassC{
private String address;
int phoneNumber;
ClassC( String address, Integer phoneNumber){
this.address = address;
this.phoneNumber = phoneNumber;
}
public String toString(){
return this.address;
}
}
output:
12345/jamaica