Java 从数组列表中获取以指定字符串开头的所有元素
我正在创建一个应用程序,它根据用户输入显示一个搜索结果,这是一个数组列表。我需要按顺序显示这个结果,其中结果与起始字母索引分开,就像所有以字母“A”开头的元素都将位于标题A下,以“B”开头的元素将位于磁贴B下等等 我成功地检索了每个元素的第一个字符,并将其与字母表进行了比较,但我觉得这是一种记录方式。有没有人能给我建议一些直接的方法,这样我就可以直接得到元素了Java 从数组列表中获取以指定字符串开头的所有元素,java,android,Java,Android,我正在创建一个应用程序,它根据用户输入显示一个搜索结果,这是一个数组列表。我需要按顺序显示这个结果,其中结果与起始字母索引分开,就像所有以字母“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$
用于获取以开头的字符串列表,如果是仅显示要求,则需要一个ArrayList
,其中ArrayList.get(0)
将给出一个值,该集将具有所有标题
如果您想要O(1)访问(但不想显示列表结构),请使用多重映射(映射中的映射)get('a')。get('MY TITLE')将立即返回值。或者您可以对列表排序,然后尝试使用TreeSet对逻辑列表进行排序,然后创建一个自定义方法并检索值我认为最好使用此方法。我需要按顺序显示搜索结果,并且此搜索可能是用户进行的包含搜索。您需要按字母顺序对名称进行排序,对吗?检查以下api:您可以组合SectionIndexer和AlphaIndexer。