У меня есть массив с именем "bob", который содержит значения.
String[] bob = { "this", "is", "a", "really", "silly", "list" };
Как узнать, существует ли в массиве с именем bob без глупостей значение "глупо"?
У меня есть массив с именем "bob", который содержит значения.
String[] bob = { "this", "is", "a", "really", "silly", "list" };
Как узнать, существует ли в массиве с именем bob без глупостей значение "глупо"?
Вы можете использовать метод List#contains
. Для этого вам нужно преобразовать массив в список. Вы можете использовать метод Arrays#asList()
, чтобы:
String[] bob = { "this", "is", "a", "really", "silly", "list" };
if (Arrays.asList(bob).contains("silly")) {
// true
}
Преобразуйте массив в список с помощью static Arrays.asList(T)
и проверьте с помощью List.contains(Object)
, чтобы проверить, существует ли объект в перенастроенной коллекции.
String[] bob = { "this", "is", "a", "really", "silly", "list" };
System.out.println(Arrays.asList(bob).contains("silly"));
Традиционным способом было бы перебирать массив и проверять каждый элемент, используя equals().
Если вы собираетесь проверить его, вы можете найти более эффективным использование HashSet
:
String[] bob = { "this", "is", "a", "really", "silly", "list" };
Set<String> silly = new HashSet<String>(Arrays.asList(bob));
boolean isSilly = silly.contains("silly");
Вот простой способ сделать это:
ArrayList list = new ArrayList(Arrays.asList(bob ));
if (list.contains("silly")) {
// my array has silly !
}
Идея состоит в том, чтобы преобразовать ваш массив в объект ListArray. но он будет потреблять дополнительную память, поэтому убедитесь, что она того стоит, прежде чем использовать ее.
Edit
Если вы после формообразования и сохранения памяти, вы можете использовать бинарный поиск algorthem: таким образом вам не нужно выделять новые объекты:
Arrays.sort(array)
int value = Arrays.binarySearch(array, "silly");
if (value != -1) {
// my array has silly !
}