Есть ли в Java оператор или функция «IN», например, SQL? [Duplicate]

22
задан codea 22 November 2012 в 17:41
поделиться

7 ответов

Есть много коллекций, которые позволят вам делать что-то подобное. Например:

С Строками :

String s = "I can has cheezeburger?";
boolean hasCheese = s.contains("cheeze");

или с Коллекциями :

List<String> listOfStrings = new ArrayList<String>();
boolean hasString = listOfStrings.contains(something);

Однако подобной конструкции для простой Строки [] не существует. .

21
ответ дан 29 November 2019 в 03:47
поделиться
if(myArrayList.contains("hello"))
{
    // yay
}
1
ответ дан 29 November 2019 в 03:47
поделиться

Вы можете использовать java.util.Collection.contains () для коллекций. Если у вас есть ненулевой массив, вы можете использовать java.util.Arrays.asList (array) .contains ().

3
ответ дан 29 November 2019 в 03:47
поделиться

Во-первых, это зависит от того, из чего состоит массив. Если это массив точных слов, вы можете преобразовать его в обычную коллекцию и использовать метод contains(). Если это массив предложений или фраз и т. д., вы должны перебрать его, чтобы сказать.

Наиболее общее решение, которое уловит все это, состоит в следующем.

for(String s : stringArray)
{
  if(s.indexOf(word) > 0) return true;
}
return false;

Это просматривает каждую строку в массиве и проверяет, содержится ли в нем слово. Он вернет true после того, как будет найдено первое вхождение.

1
ответ дан 29 November 2019 в 03:47
поделиться

В Java нет оператора "in".

Для массивов вам необходимо выполнить итерацию и найти соответствующий элемент.

Для списков можно использовать метод contains.

7
ответ дан 29 November 2019 в 03:47
поделиться

Если массив отсортирован, вы можете использовать Arrays.binarySearch для поиска данных.

Примерно так:

   if (Arrays.binarySearch(stringArray, word)>=0)  {
     // word found in the array.
   }

Если массив не отсортирован, в commons lang используется метод ArrayUtils.indexOf.

Наконец, если вы ищете в большом массиве, может оказаться целесообразным параллельный поиск с использованием ParallelArray из JSR166, который появился в Java SE 7 и теперь доступен для загрузки. Эта статья содержит введение.

0
ответ дан 29 November 2019 в 03:47
поделиться

Расскажите, как выглядит ваша проблема и что вам нужно проверить. Есть несколько разных способов сделать что-то подобное. Если вам нужно продолжать спрашивать, находится ли элемент A в наборе B.. сделайте набор B равным HashSet, и вы можете очень быстро вызвать contains. Вы можете получить один и тот же эффект несколькими java-способами, но они будут различаться в зависимости от ваших данных и т. д.

0
ответ дан 29 November 2019 в 03:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: