java - জাভা বাছাই তালিকার তালিকা




list sorting (2)

আপনাকে আপনার নিজস্ব Comparator শ্রেণি প্রয়োগ করতে হবে এবং একটি দৃষ্টান্তে Collections.sort() পাস করতে হবে

class ListComparator<T extends Comparable<T>> implements Comparator<List<T>> {

  @Override
  public int compare(List<T> o1, List<T> o2) {
    for (int i = 0; i < Math.min(o1.size(), o2.size()); i++) {
      int c = o1.get(i).compareTo(o2.get(i));
      if (c != 0) {
        return c;
      }
    }
    return Integer.compare(o1.size(), o2.size());
  }

}

তাহলে বাছাই করা সহজ

List<List<Integer>> listOfLists = ...;

Collections.sort(listOfLists, new ListComparator<>());

কালেকশানস.সর্ট () বা অন্য কোনও বাছাই পদ্ধতি ব্যবহার করে আমি জাভাতে লিস্টিকোগ্রাফিক ক্রমে তালিকার একটি তালিকা বাছাই করব কীভাবে?

private List<List<Integer>> possiblePoles = setPoles();    
System.out.println(possiblePoles)
[[1, 3, 5], [1, 2, 3]]

জাভা 8 স্ট্রিম এপিআই ব্যবহার করে উন্নত মার্টিনস উত্তর

possiblePoles = possiblePoles.stream().sorted((o1,o2) -> {
             for (int i = 0; i < Math.min(o1.size(), o2.size()); i++) {
                  int c = o1.get(i).compareTo(o2.get(i));
                  if (c != 0) {
                    return c;
                  }
                }
                return Integer.compare(o1.size(), o2.size());
         }).collect(Collectors.toList());




sorting