检查数组是否包含Java值的最有效方法?

时间:2016-06-17 16:19:37

标签: java list data-structures

我对Java类中的方法有一个类似的逻辑(不是真正的代码,这是为了示例目的而简化)。

private Boolean method(Boolean booleanValue, SomeObject object) {
  return booleanValue ? Arrays.asList(object.getStringsArray()).contains("string") : false;
}

指派自己检查PR的合作者给出了以下评论:

  

效率低下。它正在创建一个新的数据结构,只是迭代它并检查是否有某个字符串。

getStringsArray()方法会返回String[],因此使用for循环会优于Arrays.asList()吗?

实现这一目标哪种方式更有效?

1 个答案:

答案 0 :(得分:5)

当他们断言您的方法正在创建新的数据结构时,您的同事是不正确的。

如果您查看Arrays.asList()的API,就会说它

  

返回由指定数组支持的固定大小列表

没有理由编写自己的代码来迭代数组,只需在其周围包裹List并使用其内置方法。