簡體   English   中英

如何按字母順序對 ArrayList<> 的元素進行排序?

[英]How to sort the elements of an ArrayList<> alphabetically?

我創建了一個 FictionBooks 的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>)如果您想出一個解決方案,我將不勝感激問題並與他人分享。

FictionBooks比較器是Library 這個

 Collections.sort(fictionBooks, String.CASE_INSENSITIVE_ORDER);

應該是這樣的

 Collections.sort(fictionBooks, this);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM