2015-04-25 2 views
2

Я хотел был бы сделать код, который может искать 2 элемента в arraylist. Важен порядок элементов. Обысканные элементы: adjLists.get(l).get(h), adjLists.get(l).get(h+1)Arraylist поиск 2 элементов в указанном порядке

List list=new ArrayList(); 
list.add(adjLists.get(l).get(h)); 
list.add(adjLists.get(l).get(h+1)); 

for(List<Integer> arrayList:adjLists) { 
    while (arrayList.containsAll(list)) { 
    arrayList.set(arrayList.indexOf(adjLists.get(l).get(h + 1) + 1), 1); 
    } 
} 

ответ

2

Вы можете использовать Collections.indexOfSublist

int i = Collections.indexOfSubList(list, Arrays.asList(o1, o2)); 
+0

Нравится это: 'int j = Collections.indexOfSubList (adjLists, Arrays.asList (adjLists.get (l) .get (h), adjLists.get (l) .get (h + 1)));'? После этого, как я могу искать? –

+0

если i == -1, то поиск не удался; в противном случае это индекс первого элемента, i + 1 - индекс второго элемента –

+0

Какой цикл и как его использовать? Пожалуйста, дайте мне более подробную информацию, новые коллекции для меня. –

0

Вы можете использовать традиционный цикл:

for (int i = 0; i < list.size()-1; i++) { 
    if (list.get(i) == firstVal && list.get(i+1) == secondVal) { 
     // Victory! 
    } 
} 
+0

Извините, но это список списков, есть 2 получает. Я уже пробовал это, не работает. –

+0

'for (int lj = 0; lj

+0

Этот ключ делает то же, что и ваш, но не работает, ничего похожего ничего не делает. –

Смежные вопросы