/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/A4.java |
nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt
nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java
package edu.slcc.asdv.caleb.javafxballswithcomparator;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class A4<E extends Comparable<E>> {
E x;
public A4() {}
public A4(E x) {this.x = x;}
public static Comparator<A4> comparator() {
Comparator<A4> c = new Comparator<A4>() {
@Override
public int compare(A4 o1, A4 o2) {
return o1.x.compareTo(o2.x);
}
};
return c;
}
public static Comparator<A4> comparatorReverse() {
Comparator<A4> c = new Comparator<A4>() {
@Override
public int compare(A4 o1, A4 o2) {
switch (o1.x.compareTo(o2.x)) {
case -1:
return 1;
case 0:
return 0;
case 1:
return -1;
}
return -112315234;
}
};
return c;
}
@Override
public String toString() {
return "A4{" + "x=" + x + '}';
}
public static void main(String[] args) {
System.out.println("Sorting in ascending order");
List<A4> list1 = Arrays.asList(
new A4(new Integer(4)),
new A4(new Integer(1)),
new A4(new Integer(2))
);
Collections.sort(list1, A4.comparator());
List<A4> list2 = Arrays.asList(
new A4(new String("once")),
new A4(new String("upon")),
new A4(new String("a")),
new A4(new String("time")),
new A4(new String("in")),
new A4(new String("America"))
);
Collections.sort(list2, A4.comparator());
System.out.println(list1);
System.out.println(list2);
System.out.println("Now, in descending order:");
Collections.sort(list2, A4.comparatorReverse());
System.out.println(list2);
}
}