【问题标题】:Get all the elements which are starting with a specified string from an Array List从数组列表中获取所有以指定字符串开头的元素
【发布时间】:2012-07-31 20:10:51
【问题描述】:

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

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

提前致谢,蒂姆

【问题讨论】:

标签: java android


【解决方案1】:

如果是仅显示要求有一个ArrayList<Set<Title>>,其中ArrayList.get(0) 将给出A,而Set 将具有所有标题

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

【讨论】:

    【解决方案2】:

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

    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. 
    

    【讨论】:

      【解决方案3】:

      你可以使用正则表达式

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

      【讨论】:

      • 或者你可以对你的列表进行排序并尝试一些逻辑
      • List可以用TreeSet排序,然后自定义方法取值
      猜你喜欢
      • 2011-06-26
      • 1970-01-01
      • 2012-06-30
      • 2016-02-03
      • 2016-12-04
      • 2015-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多