【发布时间】:2019-08-18 14:59:53
【问题描述】:
我有一个对象的 ArrayList,在每个对象中我都有一个日期和一个小时,我已将其转换为 int 进行排序。 我已经按日期对对象列表进行了排序,现在我想按小时对相同的数组列表进行排序,保持日期的排序。
一个小例子:
我有一个带有方法的事件对象 getDateEvent() 和 getHourEvent() 返回可排序的数据和小时值,如 YYYYMMDD 和 HHMM
并且一个事件数组列表已经按日期排序,所以我必须按小时对数组列表进行排序,保持日期排序。
我的代码实际上是这样的:
private ArrayList<Evento> SortingHour(ArrayList<Evento> SortingList){
int t=0;
int counter=0;
ArrayList<Evento> finale = new ArrayList<>();
ArrayList<Evento>[] Array = new ArrayList[SortingList.size()];
while(counter<SortingList.size()){
if( SortingList.get(counter).getDateEvent()).equals(SortingList.get(counter+1).getDateEvent()))) {
Array[t].add(SortingList.get(counter));
Array[t].add(SortingList.get(counter+1));
counter++;
}else{
t++;
Array[t].add(SortingList.get(counter));}
counter++;
}
for(int c=0;c<t;c++) {
for (int c1 = 0; c1 < Array[c].size(); c1++) {
for (int c2 = 0; c2 < Array[c].size(); c2++) {
if (Integer.parseInt(Array[c].get(c1).getHourEvent()) < Integer.parseInt(Array[c].get(c2).getHourEvent())) {
Collections.swap(Array[c], c1, c2);
}
}
}
}
for(int c=0; c<t;c++){
finale.addAll(Array[c]);
}
return finale;
}
【问题讨论】:
-
我已经用我的代码更新了问题!