我想将一个字符串与多个arraylist进行比较。
Say String str;
ArrayList<String> list1;
ArrayList<String> list2;
if(list1.contains(str)
else if(list2.contains(str)
else if...
我想用其他方式来做,而不是if else ladder。
任何选项?
答案 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;
}