Android - 检查数组中是否存在值

use*_*795 44 java arrays

我有一个名为"bob"的数组,其中包含值.

String[] bob = { "this", "is", "a", "really", "silly", "list" };
Run Code Online (Sandbox Code Playgroud)

如何知道名为bob的数组中是否存在"愚蠢"值而不迭代它?

Roh*_*ain 121

你可以使用List#contains方法.为此,您需要将数组转换为列表.你可以使用Arrays#asList()方法fot:

String[] bob = { "this", "is", "a", "really", "silly", "list" };

if (Arrays.asList(bob).contains("silly")) {
    // true
}
Run Code Online (Sandbox Code Playgroud)

  • 在这种情况下,您可以将`Arrays.asList(bob)`更改为`Collections.singletonList(bob)`=更少的内存使用量. (2认同)

Per*_*ror 8

使用static将Array转换为List,并使用Arrays.asList(T)check List.contains(Object)来检查返回的集合中是否存在对象.

    String[] bob = { "this", "is", "a", "really", "silly", "list" };
           System.out.println(Arrays.asList(bob).contains("silly"));
Run Code Online (Sandbox Code Playgroud)

然而,传统的方法是迭代数组并使用equals()检查每个元素.


Old*_*eon 5

如果您要进行大量检查,则可能会发现使用HashSet

String[] bob = { "this", "is", "a", "really", "silly", "list" };
Set<String> silly = new HashSet<String>(Arrays.asList(bob));
boolean isSilly = silly.contains("silly");
Run Code Online (Sandbox Code Playgroud)