class MyNode {
int A;
String B;
char C;
int D;
long E;
short F;
boolean G;
public MyNode(int A, String B, char C, int D, long E, short F, boolean G) {
this.A = A;
this.B = B;
this.C = C;
this.D = D;
this.E = E;
this.F = F;
this.G = G;
}
class MyComparator implememnts Comparator<MyNode> {
@Override
public int compare(MyNode node1, MyNode node2) {
if (node1.A < node2.A) {
return -1;
} else if (node1.A > node2.A) {
return 1;
} else { // node1.A == node2.A
if (node1.B.compareTo(node2.B) == -1) {
return 1;
}
else if (node1.B.compareTo(node2.B) == 1) {
return -1;
}else{ // node1.B.length() == node2.B.length()
if (node1.C - 'a' < node2.C - 'a') {
return -1;
} else if (node1.C - 'a' > node.C - 'a') {
return 1;
} else { // node1.C - 'a' == node2.C - 'a'
if ((long)node1.D + node1.E > (long)node2.D + node2.E) {
return -1;
} else if ((long)node1.D + node1.E < (long)node2.D + node2.E){
return 1
} else {// (long)node1.D + node1.E == (long)node2.D + node2.E
if (node1.F < node2.F) {
return -1;
} else if (node1.F > node2.F) {
return 1;
} else { // node1.F == node2.F
if (node1.G = node2.G) {
return 0;
} else if (node1.G){
return -1;
} else {
return 1;
}
}
}
}
}
}
}
}
}
public static void main(String[] args) {
List<MyNode> nodes = new ArrayList<>();
MyNode node1 = new MyNode(2, "Harryyyds", 'z', 100, 10000000000L, (short)90, true);
MyNode node2 = new MyNode(2, "Harry", 'a', 2, 10000000000L, (short)100, true);
MyNode node3 = new MyNode(1, "Harry", 'a', 2, 10000000000L, (short)100, true);
MyNode node4 = new MyNode(2, "Harryyyds", 'z', 2, 10000000000L, (short)100, true);
MyNode node5 = new MyNode(2, "Harryyyds", 'z', 100, 10000000000L, (short)90, false);
MyNode node6 = new MyNode(2, "Harryyyds", 'a', 2, 100000L, (short)100, true);
MyNode node7 = new MyNode(2, "Harryyyds", 'z', 100, 10000000000L, (short)90, true);
MyNode node8 = new MyNode(2, "Harryyyds", 'z', 100, 10000000000L, (short)100, true);
MyNode node9 = new MyNode(2, "Harryyyds", 'z', 100, 10000000000L, (short)80, false);
nodes.add(node1);
nodes.add(node2);
nodes.add(node3);
nodes.add(node4);
nodes.add(node5);
nodes.add(node6);
nodes.add(node7);
nodes.add(node8);
nodes.add(node9);
for (int i = 0 ; i < nodes.size(); i++) {
System.out.println("Before Sorting:" + nodes.get(i).A + " " + nodes.get(i).B + " "
+ nodes.get(i).C + " " + nodes.get(i).D + " " + nodes.get(i).E + " "
+ nodes.get(i).F + " " + nodes.get(i).G)
}
Collections.sort(nodes, new MyComparator());
for (int i = 0 ; i < nodes.size(); i++) {
System.out.println("After Sorting:" + nodes.get(i).A + " " + nodes.get(i).B + " "
+ nodes.get(i).C + " " + nodes.get(i).D + " " + nodes.get(i).E + " "
+ nodes.get(i).F + " " + nodes.get(i).G)
}
}