我有一个自定义对象列表。这些对象包含过去2年(每天)的预订信息。这是一个非常大的列表,包含大约730(365 + 365)项。
我还有一个带有日间单元格的网格视图(如日历),如果它们符合某些条件,我想在每天绘制不同的东西。
问题是对于getView中的每个单元格,我必须循环这个大的列表。
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
...
String date = dateList.get(position).getDate();
for(Reservation item: reallyBigList){
if(item.getDate.equals(date)){
...
break;
}
}
...
}
这种方法使我的列表非常滞后。我正在寻找一种最有效的方法来实现这一目标。我能想到的一个解决方案就是拆分这个大清单。但我想知道是否还有其他办法。
答案 0 :(得分:3)
您可以根据某些唯一属性制作地图。假设你在这种情况下有约会。
答案 1 :(得分:0)
您可以在for循环中的每一天使用switch case来在一次迭代中填充day cell
for(Reservation item: reallyBigList){
if(item.getDate.equals(date)){
//convert day from date to integer
switch(day){
case 1:
case 2:
case 3:
//..
default:
}
//may need multiple switch statements for month and year as reqd
}
}
请参阅here以获取具有嵌套语句的开关。
希望这可以在一次但稍长的迭代中完成工作。