你好想知道我该如何排序 arrayList
public class Librarian {
public static void main(String[] args){
Library library = new Library();
library.addBook(new FictionBook("The walk through the exam", "Andreas", 0));
library.addBook(new FictionBook("The incredible Programmer", "John", 1));
library.addBook(new FictionBook("The Calculator", "Pius", 1));
library.addBook(new FictionBook("The gozzilla", "Henry", 1));
library.addBook(new FictionBook("The game", "Pele", 0));
library.addBook(new FictionBook("Racing on the moon", "Marco",0));
library.addBook(new FictionBook("London Show", "William", 0));
library.addBook(new FictionBook("Water fights", "Claudia", 1));
library.addBook(new FictionBook("Monster and Dragons", "Woozer", 1));
library.addBook(new FictionBook("Pencils and pins", "Xian", 0));
for(FictionBook myFictionBook : library.library){
System.out.println(myFictionBook.getAuthor());
}
}
Java中的排序是通过实现Comparable
接口来完成的,该接口基本上指示了如何比较两个对象(即,“较大”并且应该排在最后,而“较小”并且应该排在第一)。完成此操作后,Collections.sort
应注意其他所有事项。
假设您的FictionBook
类有一个getTitle()
方法,您想做这样的事情:
public class FictionBook implements Comparable<FictionBook> {
// snipped...
@Override
public int compareTo(FictionBook other) {
return getTitle().compareTo(other.getTitle());
}
}
然后,您可以使用Collections.sort(library)
。
另一种方法是确定FictionBook
s没有自然排序(即,它们不是Comparable
),但是由另一个类处理该顺序。这可以通过Comparator
以类似的方式实现来完成:
public class FictionBookComparator implements Comparator<FictionBook> {
@Override
public int compare(FictionBook o1, FictionBook o2) {
return o1.getTitle().compareTo(o2.getTitle());
}
}
现在,您可以Comparator
在对library
:进行排序时使用它Collections.sort(library, new FictionBookComparator())
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句