【问题标题】:*ignore* How to check if an Array<String> contains an item that starts with a value [closed]*忽略*如何检查 Array<String> 是否包含以值开头的项目 [关闭]
【发布时间】:2015-05-08 09:54:20
【问题描述】:

应用从服务器获取数据。数据以数组形式返回。我需要检查其中一个数组项是否以应用程序中指定的值开头。如果没有迭代是可能的,因为这会显着降低应用程序的速度。

【问题讨论】:

  • 很难看出您显示的代码与您在开始时引用的代码的对应关系 - 而 那个 代码只是检查数组是否包含 相等 元素;它不检查数组中的任何项目是否包含“lol”。一个简短但完整的示例,真正展示您感兴趣的内容,会更容易为您提供帮助。
  • 请发布可编译的代码。
  • @ChetanKinger 很抱歉,我现在就检查一下!
  • 如果您不了解数据结构,则需要迭代。例如,如果对数组进行排序,则可以使用二分搜索来加快速度。
  • @JonSkeet 我已经编辑了我的示例

标签: java arrays


【解决方案1】:

如果您只有一个数组数据结构,那么如果不实际查看它,就无法检查它包含的内容。

但是,如果您使用不同的数据结构,例如 HashMap(基于数组构建),您通常可以在 O(1) 时间内检查/查找像 "101" 这样的键。您可以在 O(1) 时间内查看map.isEmpty()

简而言之,如果执行简单操作花费的时间太长,您可能需要使用不同的数据结构(或可能不止一个)

【讨论】:

  • 你的意思实际上是说你可以检查hashmap中的一个项目是否包含一个值而不需要两者完全相等?
  • @tim687 好问题。不,必须完全匹配。我想这个答案需要更新:)
  • @ChetanKinger 这就是试图通过开始这个问题来提出的问题:-p。再次抱歉没有提出明确的问题,我发现有时很难做到。我希望有一个方便的解决方案来解决这个问题
  • @tim687 要快速查找部分值,您需要拥有所有可能查找的索引。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-22
  • 2012-12-07
  • 2014-10-02
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
  • 2018-12-09
相关资源
最近更新 更多