gpt4 book ai didi

java - 将 Java ArrayList 修剪为具有最新日期的不同行

转载 作者:行者123 更新时间:2023-11-30 07:58:38 27 4
gpt4 key购买 nike

我有一个 ListMyData 如下。它由多行 MyData 对象组成。有些具有相同的 key 但不同的 datename

public class MyData {
String name;
String key;
String date;
// ... constructor and other codes omitted here
}

List<MyData> myDataList;

我正在考虑根据最新的 date 将列表修剪为不同的 key

例如如果我有

*Name* *key* *date*
ABC 12 2016-10-09
FGH 10 2016-10-18
IJK 10 2016-10-08
DEF 12 2016-10-19

那么修剪结果应该是

*Name* *key* *date*
DEF 12 2016-10-19
FGH 10 2016-10-18

在算法上执行此操作的最佳方法是什么?

注意:我在 Java 7 上,无法使用 Java 8 的 Stream 功能。(这是针对 Android 开发的,Java 8 尚不支持)。

最佳答案

假设您为 date 属性使用真实的日期类型,您可以这样做:

private Collection<MyData> trim(List<MyData> data) {
Map<String, MyData> result = new HashMap<>();
for (MyData item : data) {
MyData lastItem = result.get(item.getKey());
if (lastItem == null || lastItem.getDate().before(item.getDate())) {
result.put(item.getKey(), item);
}
}
return result.values();
}

您可能会使用流达到相同的结果。

关于java - 将 Java ArrayList 修剪为具有最新日期的不同行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40283689/

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