我有一个包含这样日历的数组。这个数组可能包含所有月份的数据。
calendarday: [CalendarDay{2017-8-13}, CalendarDay{2017-8-14}, CalendarDay{2017-9-18}, CalendarDay{2017-9-19}, CalendarDay{2017-10-15}, CalendarDay{2017-10-16}]
我想要的是将这些数组值按月分成不同的数组或不同键的相同数组。像这样
calendarday: [CalendarDay{2017-8-13}, CalendarDay{2017-8-14}]
calendardayone: [CalendarDay{2017-9-18}, CalendarDay{2017-9-19}]
或者像这样
calendarday: [
0:[CalendarDay{2017-8-13}, CalendarDay{2017-8-14}],
1:[CalendarDay{2017-9-18}, CalendarDay{2017-9-19}],
2:[CalendarDay{2017-10-15}, CalendarDay{2017-10-16}]
]
我找到的一种方法是检查所有月份的条件是否分开并分割这些数组。但我不想那样做。是否有任何替代方法,以便我不必检查所有月份的条件
任何帮助和想法将不胜感激。谢谢你提前。
答案 0 :(得分:1)
这是我正在考虑的解决方案:将所有CalendarDay
保存在字典中,密钥为月份。所以我们从这样的事情开始:
String[] array = {"CalendarDay{2017-8-13}", "CalendarDay{2017-8-14}", "CalendarDay{2017-9-18}", "CalendarDay{2017-9-19}", "CalendarDay{2017-10-15}", "CalendarDay{2017-10-16}"};
然后简单地迭代数组,拆分每个字符串并将其保存到字典中:
Map<String, ArrayList<String>> dictionary = new HashMap<String, ArrayList<String>>();
for (String currentString : array) {
String month = currentString.split("-")[1];
ArrayList<String> values = dictionary.get(month);
if (values == null) {
values = new ArrayList<String>();
}
values.add(currentString);
dictionary.put(month, values);
}
我们最终会得到类似的结果:
{
8=[CalendarDay{2017-8-13}, CalendarDay{2017-8-14}],
9=[CalendarDay{2017-9-18}, CalendarDay{2017-9-19}],
10=[CalendarDay{2017-10-15}, CalendarDay{2017-10-16}]
}
答案 1 :(得分:0)
您可以在每个元素中获取月份的值,然后根据值将其放入不同的数组中