在Java(Android)中,我有一堆由唯一日期键入的记录。它们也根据增加的日期排序。用户应添加到此集合中。
我需要能够做到以下几点:
一些实施细节 -
这些记录将按日期递增排序(最新版本)。
这些记录也将在Android ListView中以反向顺序(顶部的最新日期)显示,因此需要非线性,直接访问索引。
这些记录也将根据数据库中可能存在或不存在的日期绘制,因此需要按日期直接查找。
我还没有找到满足这些要求的现有解决方案。
实现这一目标的最佳方式是什么?
答案 0 :(得分:1)
我认为现有的收藏品并不存在。我会使用TreeMap作为记录:
Map<Date, MyRecord> records = new TreeMap<Date, MyRecord>(Collections.reverseOrder());
每当您想要添加到地图或按日期查找时,只需按常规方式使用地图。
但是,我并不认为您实际上需要通过索引方法进行查找,以便在最新的ListView
中显示您的记录。您只需使用
List<MyRecord>
和ArrayAdapter
进行实例化即可
new ArrayAdapter(context, resourceId, list);
每当需要更新ListView
时,请使用以下代码:
list.clear();
list.addAll(records.values()); // Because records is a TreeMap, values() will be in correct order.
adapter.notifyDataSetChanged();