2014-04-23 2 views
0

Я хочу сравнить строку с несколькими arraylist.Сравнение строки с несколькими arraylis

Say String str; 
    ArrayList<String> list1; 
    ArrayList<String> list2; 

    if(list1.contains(str) 

    else if(list2.contains(str) 

    else if... 

Я хочу сделать это каким-то другим способом, вместо того, чтобы использовать другую лестницу.

Любые варианты?

+0

, что вы хотите делать, если блоки? –

+0

Что вы хотите сделать, если найдете строку в списке? что вы хотите сделать, если несколько списков содержат строку? где/как определяется порядок проверки ('list1-> list2-> listx..')? – Kent

ответ

2

Вы могли бы иметь список списков:

ArrayList<ArrayList<String>> lists = new ArrayList<>(); 

lists.add(list1); 
lists.add(list2); 

, то вы можете написать

for (<ArrayList<String> list : lists) { 
    if (list.contains(str) { 
     // whatever 
    } 
} 
0

песни2 и т.д. элементов в один список с использованием метода addAll() ... как ..

lists.addAll(list1); 
lists.addAll(list2).. 

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

for (String ele: lists) { 
    if (ele.equals(str) { 
     // do whatever you want 
    } 
} 

здесь вы можете сохранить итерации список список ..

0

сложное решение:

public static void main(String[] args) throws Exception { 
    ArrayList<String> l1 = new ArrayList<>(); 
    ArrayList<String> l2 = new ArrayList<>(); 
    int i = getIndex("key", l1, l2); 
    switch (i) { 
    case -1: 

     break; 
    case 0: 

     break; 
    case 1: 

     break; 

    default: 
     break; 
    } 
} 

public static int getIndex(String key, ArrayList<String>... arrayLists) { 
    for (int i = 0; i < arrayLists.length; i++) { 
     if (arrayLists[i].contains(key)) 
      return i; 
    } 
    return -1; 
} 
+0

Это полезно для проверки существования str, но мы потеряли информацию, найденную в списке. но это полностью соответствует требованию ... – Kent

+0

@Kent да. для этого я спросил PO, что он/она хочет сделать, если блоки. return type может быть ArrayList (тогда нет блока switch) .... –

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