我正在创建一个应用程序,该应用程序基于用户输入显示一个数组列表的搜索结果。我需要以结果与起始字母索引分开的顺序显示此结果,就像所有以字母开头的元素“A”将在标题A下,以“B”开头将位于B片下,依此类推。 ..获取从数组列表中指定字符串开头的所有元素
我成功地检索每个元素的第一个字符并将其与字母进行比较,但我感觉像一个日志方式。任何人都可以提出任何直接的方式,以便我可以直接获取元素?
在此先感谢,蒂姆
我正在创建一个应用程序,该应用程序基于用户输入显示一个数组列表的搜索结果。我需要以结果与起始字母索引分开的顺序显示此结果,就像所有以字母开头的元素“A”将在标题A下,以“B”开头将位于B片下,依此类推。 ..获取从数组列表中指定字符串开头的所有元素
我成功地检索每个元素的第一个字符并将其与字母进行比较,但我感觉像一个日志方式。任何人都可以提出任何直接的方式,以便我可以直接获取元素?
在此先感谢,蒂姆
不要比较所有。只要使用您的搜索项目作为索引。不断寻找时间。您需要一个索引功能,将您的搜索项目转换为唯一的数字。例如:
lets find "data" word in your list.
d=4, a=1, t=20:
data----->4 + 1*4 + 20*(1+4) + 1*(20+1+4) just made up this.
你可以使用正则表达式
^A*\W$
用于获取字符串列表以A开头的
或者您也可以对您的列表进行排序并尝试一些逻辑 – 2012-07-31 10:35:19
可以使用TreeSet对列表进行排序,然后创建自定义方法并检索值 – 2012-07-31 10:36:11
如果它显示唯一的要求有ArrayList<Set<Title>>
其中ArrayList.get(0)
会给A和集将有所有标题
如果你想O(1)访问(但不想显示列表结构)使用MultiMap(地图内的地图)get('A')。get('MY TITLE')将立刻回报你价值。
将尝试此:) – Timson 2012-07-31 10:39:13
您需要按字母顺序排序名称,是吗? – Venky 2012-07-31 10:35:37
是的,按照字母顺序,就像联系人在Android手机上显示的方式:) – Timson 2012-07-31 10:37:00
检查以下api:http://developer.android.com/reference/android/widget/AlphabetIndexer.html http:// stackoverflow。 com/questions/4115920/alphabetindexer-with-custom-adapter – jeet 2012-07-31 10:36:41