Java Sorting: sort an array of objects by property, object not allowed to use Comparable

后端 未结 4 685
生来不讨喜
生来不讨喜 2020-12-01 11:30

I have a class, Library, that contains an array of Book objects, and I need to sort the array based off the properties of Book, either Title or PageNumber. The problem is im

4条回答
  •  青春惊慌失措
    2020-12-01 12:01

    You can provide a Comparator for comparing any type you wish, Comparable or otherwise.

    For Arrays and Collections you use

    Arrays.sort(array, myComparator);
    Collections.sort(list, myComparator);
    

    Even sorted collections like TreeSet can take a custom Comparator

    e.g.

    Collections.sort(books, new Comparator() {
       public int compare(Book b1, Book b2) {
          return if b1 is greater return +1, if b2 is smaller return -1 otherwise 0
       }
    });
    

提交回复
热议问题