Hjælp til Comparable
Hejsa jeg har følgende kode(udsnit):public class A {
private Map nodeIds;
public A() {
nodeIds = new TreeMap();
}
public void insertNode(OrgNode n) {
nodeIds.put(n.nodeid, n);
}
public class OrgNode implements Comparable<OrgNode>{
public String nodeId;
public String txt;
public static boolean SORT_ASC = true;
public OrgNode(String nodeId, Strinng txt) {
this.nodeId = nodeId;
this.txt = txt;
}
public int compareTo(OrgNode o) {
int result = txt.compareTo(o.txt);
if(result == 0) {
return 0;
}
if(SORT_ASC) {
return (result > 0) ? 1: -1;
} else {
return (result < 0) ? 1: -1;
}
}
}
Klassen A kaldes fra klassen B, med OrgNode som parametre. Men som det er nu bliver min TreeMap sorteret ud fra nodeId key, så hvis jeg har 3 OrgMap objekter
Public class B {
public create() {
A obj = new A();
OrgNode o1 = new OrgNode(2,"aabb");
OrgNode o2 = new OrgNode(1,"test");
OrgNode o3 = new OrgNode(3,"Viiii");
obj.insertNode(o1);
obj.insertNode(o2);
obj.insertNode(o3);
}
}
vil mit treeMap bliver sorteret ud fra nøglen(nodeId)
Så rækkefølgen vil være;
OrgNode o2 = new OrgNode(1,"test");
OrgNode o1 = new OrgNode(2,"aabb");
OrgNode o3 = new OrgNode(3,"Viiii");
MEN jeg vil rent faktisk gerne have rækkefølgen der følger txt dvs jeg vil gerne have følgende rækkeføle:
OrgNode o1 = new OrgNode(2,"aabb");
OrgNode o2 = new OrgNode(1,"test");
OrgNode o3 = new OrgNode(3,"Viiii");
Hvad er det lige jeg gør forkert ?