簡體   English   中英

Java中的集合排序問題

[英]Collections Sort Issue in Java

簡單來說,我有一個星期列表ArrayList<Week> ,每個ArrayList<Week>包含一個星期ArrayList<Week>的列表ArrayList<Day> ,每個ArrayList<Day>都包含Day類中的Date對象。 換句話說,周,天,日期。

對於問題,我必須將ArrayList<Week>隨機化,將其用於Collections.shuffle並可以正常工作。

然后,我需要將它們放回原處,並且嘗試使用以下方法:

public void sortWeeksInDateOrder(final List<Week> weeks) {
Collections.sort(weeks, new Comparator<Week>() {
        @Override
        public int compare(final Week week1, final Week week2) {
        //Return -1 or 1 if first date is before or after second date.
            return week1.getAllDays().get(0).getDate().before((week2.getAllDays().get(0).getDate())) ? -1 : 1;
        }
    });
}

但是,它沒有排序。 我想念什么嗎? 周從不一樣,所以我不需要返回0,所以我認為這種解決方案會起作用。

為了使其整潔,您應該實現Week類的Comparable接口,並提供實現細節以compareTo方法,以說明如何比較Weeks。

因此,編寫以下內容就足夠了:

Collections.sort(weeks, new Comparator<Week>() {
        @Override
        public int compare(final Week week1, final Week week2) {
            return week1.compareTo(week2);
        }
    });

暫無
暫無

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

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