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

Alf*_*ano 3 java list data-structures

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

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

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

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

getStringsArray()方法返回一个String[],所以使用for循环会比Arrays.asList()

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

azu*_*rog 5

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

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

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

没有理由编写自己的代码来迭代数组,只需包装List它并使用其内置方法.