gpt4 book ai didi

java - 按日期属性对对象列表进行排序

转载 作者:行者123 更新时间:2023-12-01 17:47:28 25 4
gpt4 key购买 nike

我有一个包含两个 LocalDate 属性的对象:

public class SomeObject {
private LocalDate startDate;
private LocalDate endDate;
}

为简洁起见,省略了构造函数和其他内容。我想按这些对象的开始日期对这些对象的列表进行排序,然后将下一个对象的开始日期分配给前一个对象的结束日期。为了澄清起见,我从这些对象的列表开始:

SomeObject object1 = new SomeObject(LocalDate.parse("2015-01-01"), null);
SomeObject object2 = new SomeObject(LocalDate.parse("2014-01-01"), null);
SomeObject object3 = new SomeObject(LocalDate.parse("2016-01-01"), null);

List<SomeObject> list = Arrays.asList(object1, object2, object3);

排序后应该返回:

for (SomeObject object : list) {
System.out.println(object.startDate.toString() + " " + object.endDate.toString() );
}

2014-01-01 2015-01-01
2015-01-01 2016-01-01
2016-01-01 null

每个列表最多只包含 3 或 4 个此类对象,但代码可能必须处理数以万计的此类列表,因此我正在寻找一种有效的方法来执行此操作。

最佳答案

您可以将 Collections.sort 与比较器一起使用。在带有 Lambda 的 Java 8 中,它看起来像这样:

    Collections.sort(list, (x, y) -> x.startDate.compareTo(y.startDate));

for (int i = 0; i < (list.size() - 1); i++) {
list.get(i).endDate = list.get(i + 1).startDate;
}

关于java - 按日期属性对对象列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53541137/

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