我有一个跨越几年的日期的数组列表,即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());
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句