【发布时间】:2012-03-08 13:31:07
【问题描述】:
我有一个包含餐厅对象的数组列表
ArrayList<Restaurants> array_sort = new ArrayList<Restaurants>();
Restaurant 对象包含其名称和 ID。除此之外,还有一个字母索引。当用户单击索引字母时,我需要查找数组中的特定字母。这张图片会给你一个好主意。
提前致谢!
【问题讨论】:
标签: java android search arraylist
我有一个包含餐厅对象的数组列表
ArrayList<Restaurants> array_sort = new ArrayList<Restaurants>();
Restaurant 对象包含其名称和 ID。除此之外,还有一个字母索引。当用户单击索引字母时,我需要查找数组中的特定字母。这张图片会给你一个好主意。
提前致谢!
【问题讨论】:
标签: java android search arraylist
对这个任务使用 ArrayList 不是一个好主意,因为它不能为您的问题提供任何有效的解决方案。我建议使用TreeMap<String,Resturant>。 TreeMap的好处是它有方法
public NavigableMap<K,V> subMap(K fromKey,
boolean fromInclusive,
K toKey,
boolean toInclusive)
它返回地图的一部分,其中仅包含特定字母所需的项目,已经排序。此子图由完整的子图支持,因此它是一个轻量级对象。
您可以轻松地执行subMap("a", true, "b", false) 之类的操作。
【讨论】:
您可以在每个字母之前枚举每个字母中的项目,然后使用http://developer.android.com/reference/android/widget/ListView.html#smoothScrollToPosition(int)
【讨论】:
最简单的选择是让地图也将显示索引映射到餐厅对象列表。
【讨论】: