2015-12-23 61 views
-3

我創建了FictionBooks的ArrayList,我試圖按作者姓名的字母順序對它們進行排序。這是我迄今爲止的代碼。如何按字母順序排列ArrayList <>的元素?

import java.util.*; 
import java.util.Collections; 

public class Library implements Comparator<FictionBook> { 
    private static final int CAPACITY = 200; 
    public ArrayList<FictionBook> fictionBooks; 

    public Library() { 
     fictionBooks = new ArrayList<FictionBook>(); 
    } 

    //... 

    @Override 
    public int compare(FictionBook o1, FictionBook o2) { 
     if(o1.getAuthor() != null && o2.getAuthor() != null){ 
      return o1.getAuthor().compareTo(o2.getAuthor()); 
     } 
     return 0; 
    } 

    public void sort() { 
     Collections.sort(fictionBooks, String.CASE_INSENSITIVE_ORDER); 
    } 
} 

但每當我嘗試使用Collections.sort它給了我這個錯誤排序:

在類型Collections方法sort(List<T>, Comparator<? super T>)不適用於參數(ArrayList<FictionBook>, Comparator<String>) 如果你來我會很感激解決我的問題並與他人分享。

回答

0

FictionBooks比較是Library。這

Collections.sort(fictionBooks, String.CASE_INSENSITIVE_ORDER); 

應該像

Collections.sort(fictionBooks, this); 
相關問題