gpt4 book ai didi

java - 支持按索引和键排序、插入和查找的集合/映射

转载 作者:行者123 更新时间:2023-11-30 02:29:49 25 4
gpt4 key购买 nike

在 Java (Android) 中,我有一堆按唯一日期键控的记录。它们也根据增加的日期进行排序。用户将添加到此集合中。

我需要能够做到以下几点:

  1. 直接按日期查找这些记录
  2. 直接通过索引查找这些记录
  3. 在任何位置(包括两个现有记录之间)插入一条新记录(具有唯一日期),从而调整所有受影响记录的索引。

一些实现细节--

这些记录将按日期升序排列(最新的在最后)。

这些记录也会在 Android ListView 中倒序显示(最新日期在顶部),因此需要非线性直接访问索引。

这些记录也将根据数据库中可能存在或不存在的日期绘制,因此需要按日期直接查找。

我无法找到满足这些要求的现有解决方案。

完成此任务的最佳方法是什么?

最佳答案

我认为没有现成的集合。我会使用 TreeMap 作为记录:

Map<Date, MyRecord> records = new TreeMap<Date, MyRecord>(Collections.reverseOrder());

每当您想添加到 map 或按日期查找时,只需以通常的方式使用 map 即可。

但是,我不认为您实际上需要通过索引方法查找才能在 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();

关于java - 支持按索引和键排序、插入和查找的集合/映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27461443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com