gpt4 book ai didi

java - Java中从给定Collection(Group By)创建子集合的集合

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

我有一个跨越数年的日期数组列表,即 ArrayList<Date> dateList我有一个对象代表每年的月份网格,即

public class DateTileGrid
{
private int mCurrentYear;
private ArrayList<Date> mDateTiles;
... // GETTERS AND SETTERS
}

我想创建一个ArrayList<DateTileGrid>其中将包含每年的相关日期。

我知道如何使用循环(令人讨厌的嵌套循环)来做到这一点,但我希望有一种更干净的方法来实现这一点。

最佳答案

在 java 8 闭包到来之前,这可能就是您所需要的

HashMap<Integer, DateTileGrid>  dataGridMap = new HashMap<>();
for (Date date: dateList) {
int year = date.getYear(); //Deprecated.. use something better
DateTileGrid dataGrid = dataGridMap.get(year);
if(dataGrid == null){
dataGrid = new DateTileGrid();
dataGrid.setCurrentYear(year);
dataGrid.setDateTiles(new ArrayList<Date>());
dataGridMap.put(year, dataGrid);
}
dataGrid.getDateTiles().add(date);
}
//Here is your result
ArrayList<DateTileGrid> result = new ArrayList<>(dataGridMap.values());

关于java - Java中从给定Collection(Group By)创建子集合的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18160727/

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