поиск в части списка массивов - Java - PullRequest
3 голосов
/ 07 февраля 2011

можно сделать поиск например между позициями от 5 до 10 в arrayList?

как

в этом случае мне нужно выполнить поиск между позициями 1-5, 5-10, ... и я хочу избежать других списков

РЕДАКТИРОВАТЬ: у меня есть что-то подобное

if (pp.move(i).subList(5, 10).contains(pn50.getText())) {

но у меня проблема с этим кодом, мне нужно вызвать метод, подобный:

if (pp.move(i).suit().subList(5, 10).contains(pn50.getText())) {

но я получаю ошибку: метод subList (int, int) не определен для типа String спасибо !!

Ответы [ 4 ]

5 голосов
/ 07 февраля 2011

Вы можете получить список того, что вам нужно (что не является дорогой операцией), а затем выполнить поиск по всему списку.Вот так:

if (myList.subList(0, 5).contains(objectToFind)) {
   System.out.println("Found object between indexes 0 and 5");
}

ОБНОВЛЕНИЕ: чтобы сначала преобразовать вашу строку мастей в список, если строка разделена запятой, то вы можете сделать это так:

String[] suitArray = pp.move(i).suit().split(",");
List myList = List list = Arrays.asList(suitArray);

затем используйте первый бит кода выше, чтобы проверить это.Теперь, если вы просто ищете что-то в строке, вы, вероятно, можете сделать это более эффективно, не преобразовав сначала список, но это был бы совершенно новый вопрос.

2 голосов
/ 07 февраля 2011
0 голосов
/ 07 февраля 2011

но я получаю ошибку: метод subList (int, int) не определен для типа String спасибо !!

Это должно быть потому, что объявлен ваш метод suit()как возвращение String.

0 голосов
/ 07 февраля 2011

это нормально, если вы захватите подсписок?

ArrayList.subList(fromIndex, toIndex);

Таким образом, у вас есть подмножество ваших предметов, вы манипулируете ими и все еще не имеете «нового» списка (изменение подсписка изменит исходный список)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...