在Java中的数组列表中寻找特定对象?

时间:2012-02-17 05:27:16

标签: java android search arraylist

我有一个包含餐馆对象的数组列表

ArrayList<Restaurants> array_sort = new ArrayList<Restaurants>();

餐厅对象包含其名称和ID。除此之外还有一个按字母顺序排列的索引。当用户点击索引字母时,我需要查找数组中的特定字母。这张图片会给你一个好主意。

enter image description here

提前致谢!

3 个答案:

答案 0 :(得分:3)

使用ArrayList执行此任务不是一个好主意,因为它不能为您的问题提供任何有效的解决方案。我建议使用TreeMap<String,Resturant>。 TreeMap的好处是它有方法

public NavigableMap<K,V> subMap(K fromKey,
                            boolean fromInclusive,
                            K toKey,
                            boolean toInclusive)

返回地图的一部分,其中只包含已经排序的特定字母所需的项目。该子图由完整的子图支持,因此它是一个轻量级对象。

您可以轻松执行subMap("a", true, "b", false)

之类的操作

答案 1 :(得分:0)

您可以枚举该字母前面每个字母中的项目,然后使用http://developer.android.com/reference/android/widget/ListView.html#smoothScrollToPosition(int

答案 2 :(得分:0)

最简单的选择可以是让地图也将显示索引映射到餐馆对象列表。