我有一个数组,它返回特定月份的一组事件。几个月可以在同一天举办不同的活动。如何检测重复日期并在相同日期条目下显示两个事件,而不是两个单独的日期条目。
代码:
public void setListView(int month, int year, int dv) {
events = new HolidayEvents();
_calendar = Calendar.getInstance(Locale.getDefault());
int totalDays = _calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
for(int i = 1; i <= totalDays; i++){
if(isHoliday(i, month, year, dv))
{
date = i + " " + getMonthForInt(month-1) + " " + year;
for (Event event : events.eventDetails(this, month, i)
{
summaries.add(new Summary(date, event.eventdetails));
}
}
}
}
输出:
1月11日有两件事。所以它显示结果:11 January 2013
-Event Name-
11 January 2013
-Event Name-
我希望输出显示如下:
11 January 2013
-Event Name | Event Name-
答案 0 :(得分:2)
如果您将Event
存储在如下结构中:
Map<Date, List<Event>> eventMap= new HashMap<Date,List<Event>>();
您可以像这样获得指定日期d
的所有活动:
List<Event> events = eventMap.get(d);
答案 1 :(得分:0)
ListMultiMap<Date,Event> eventMap = ArrayListMultiMap<Date,Event>.create();
放置到multimap会将事件添加到该日期的事件列表中。获取日期将返回包含该日期所有事件的列表。
您也可以使用常规地图手动执行此操作,虽然它有点麻烦。