比较字符串与多个arraylist

时间:2014-04-23 09:47:24

标签: java collections arraylist

我想将一个字符串与多个arraylist进行比较。

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

   if(list1.contains(str)

   else if(list2.contains(str)

   else if...

我想用其他方式来做,而不是if else ladder。

任何选项?

3 个答案:

答案 0 :(得分:2)

你可以有一份清单:

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

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

然后你可以写

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

答案 1 :(得分:0)

使用addAll()方法将list2等元素合并到一个列表中......比如..

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

现在您可以使用for循环列表

来迭代列表
for (String ele: lists) {
    if (ele.equals(str) {
        // do whatever you want
    }
}

这里你可以保存列表列表的迭代..

答案 2 :(得分: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;
}