gpt4 book ai didi

java - 按日期分组对象 : am I an idiot?

转载 作者:搜寻专家 更新时间:2023-11-01 03:14:48 24 4
gpt4 key购买 nike

我有一个名为 Activity 的对象列表:

class Activity {
public Date activityDate;
public double amount;
}

我想遍历列表,按日期对它们进行分组并返回一个新列表。这是我目前所做的:

private List<Activity> groupToList(List<Activity> activityList) {
SimpleDateFormatter sdf = new SimpleDateFormatter("YYYY-MM-DD");
Map<String,Activity> groupMap = new HashMap<String,Activity>();
for (Activity a in activityList) {
String key = sdf.format(a.getActivityDate());
Activity group = groupMap.get(key);
if (group == null) {
group = new Activity();
groupMap.add(key, group);
}
group.setAmount(group.getAmount() + a.getAmount());
}
return new ArrayList<Activity>(groupMap.values());
}

以这种方式使用 DateFormatter 是 WTF 吗?

  • 我正在使用 DateFormatter,因为每个 activityDate 都可以有时间信息。

最佳答案

我只会使用日期对象本身作为键。如果因为日期对象是可变的而困扰你,那么使用它的 toString() 值。没有理由去做格式。

如果问题是您想要通过删除时间组件来规范化日期,那么使用 Activity 对象并删除时间组件会更好。如果问题仍然存在潜在的时区问题,我会使用 JodaTime,但目前 JDK 中没有对象表示没有时间的纯日期,所以使用字符串并不离谱,但它应该是隐藏在 Activity 对象中的方法后面并且它是一个没有时间组件的日期格式字符串这一事实应该是一个实现细节。

关于java - 按日期分组对象 : am I an idiot?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1657345/

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