0

我正在创建一个应用程序,该应用程序根据用户输入显示搜索结果,该搜索结果是一个数组列表。我需要按结果与起始字母索引分隔的顺序显示此结果,就像所有以字母“A”开头的元素都将位于标题 A 下,以“B”开头的元素将位于图块 B 下,依此类推。 ..

我成功地检索了每个元素的第一个字符并将其与字母表进行比较,但我感觉像是一种日志方式。任何人都可以建议我任何直接的方式,以便我可以直接获取元素吗?

在此先感谢,蒂姆

4

3 回答 3

1

如果它是仅显示要求有一个ArrayList<Set<Title>>whereArrayList.get(0)将给出 A 并且 Set 将有所有 Titles

如果您想要 O(1) 访问(但不想显示列表结构)使用 MultiMap(地图内的地图) get('A').get('MY TITLE') 将立即返回您的值。

于 2012-07-31T10:36:33.093 回答
0

你可以使用正则表达式

^A*\W$用于获取以 A 开头的字符串列表

于 2012-07-31T10:33:30.640 回答
0

不要全部比较。只需使用您的搜索项作为索引。不断的寻找时间。您将需要一个索引功能,将您的搜索项转换为唯一的数字。例如:

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. 
于 2012-07-31T10:29:26.027 回答