Sorting Datastructures using comparator

108 Views Asked by At

I am trying to sort an array (ads, of type ETstrain) by one of the instance variables (distancefrom). How can I do this? I have tried using a comparator and then a sorting function. Is there a better way/ do I have any logical fallacies?

abstract class distanceComparator implements Comparator<ETstrain> {
    @Override
    public int compare(ETstrain a, ETstrain b) {
    return a.distancefrom < b.distancefrom ? -1 : a.distancefrom == b.distancefrom ? 0 : 1;
        }
}

public static <ETstrain> void sort(ads[] a,
        Comparator<ETstrain> b)
2

There are 2 best solutions below

1
On BEST ANSWER

Just try:

Arrays.sort(yourETStrainArray, distanceComparator);

If you have a List instead of an array, use:

Collections.sort(yourETStrainList, distanceComparator);
0
On

Working code:

public class distanceComparator implements Comparator<ETstrain> {
    @Override
    public int compare(ETstrain a, ETstrain b) {
        return a.distancefrom < b.distancefrom ? -1
                : a.distancefrom == b.distancefrom ? 0 : 1;
    }
    public <ETstrain> void sort(ETstrain[] ads,
            Comparator<? super ETstrain> distanceComparator){
        Arrays.sort(ads, distanceComparator);
    }
}