I want to return the top k ratables from the ArrayList based on the Comparator "c" in order . so the first element is the first ratable according to the comparator c.
this is my code
public static ArrayList<Ratable> getTopK(ArrayList<Ratable> list, int k, Comparator c) {
        ArrayList<Ratable> ratables;
        if (c.toString().contains("AlphabeticalComparator")) {
            ratables = AlphabeticalComparator.compare(list);
        } else if (c.toString().contains("NumberOfRatingsComparator")) {
            ratables = NumberOfRatingsComparator.compare(list);
        } else {
            Scanner in = new Scanner(System.in);
            System.out.println("Enter Extra Reviews and value of extra ratings: ");
            int extraReviews = in.nextInt();
            double extraRatings = in.nextDouble();
            ratables = BayesianAverageComparator.compare(list, extraReviews, extraRatings);
        }
        ArrayList<Ratable> subList = new ArrayList<Ratable>(ratables.subList(0, k));
        return subList;
    }
    }
My autograder is telling me it is not ordered the way it needs to be what can I do?