我正在创建一个应用程序,该应用程序根据用户输入显示搜索结果,该搜索结果是一个数组列表。我需要按结果与起始字母索引分隔的顺序显示此结果,就像所有以字母“A”开头的元素都将位于标题 A 下,以“B”开头的元素将位于图块 B 下,依此类推。 ..
我成功地检索了每个元素的第一个字符并将其与字母表进行比较,但我感觉像是一种日志方式。任何人都可以建议我任何直接的方式,以便我可以直接获取元素吗?
在此先感谢,蒂姆
如果它是仅显示要求有一个ArrayList<Set<Title>>
whereArrayList.get(0)
将给出 A 并且 Set 将有所有 Titles
如果您想要 O(1) 访问(但不想显示列表结构)使用 MultiMap(地图内的地图) get('A').get('MY TITLE') 将立即返回您的值。
你可以使用正则表达式
^A*\W$
用于获取以 A 开头的字符串列表
不要全部比较。只需使用您的搜索项作为索引。不断的寻找时间。您将需要一个索引功能,将您的搜索项转换为唯一的数字。例如:
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.