gpt4 book ai didi

java - Java中的集合排序问题

转载 作者:行者123 更新时间:2023-12-02 03:53:59 25 4
gpt4 key购买 nike

简单来说,我有一个周列表 ArrayList<Week> ,每个都包含一个日期列表 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 接口(interface),并向 compareTo 方法提供实现细节,说明您希望如何比较 Weeks。

因此,这样写就足够了:

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

关于java - Java中的集合排序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35648301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com