【问题标题】:Go for a specific object in array list in Java?在 Java 的数组列表中查找特定对象?
【发布时间】:2012-03-08 13:31:07
【问题描述】:

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

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

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

提前致谢!

【问题讨论】:

    标签: java android search arraylist


    【解决方案1】:

    对这个任务使用 ArrayList 不是一个好主意,因为它不能为您的问题提供任何有效的解决方案。我建议使用TreeMap&lt;String,Resturant&gt;。 TreeMap的好处是它有方法

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

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

    您可以轻松地执行subMap("a", true, "b", false) 之类的操作。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】: