也就是说,如果我有下一个:
ArrayList<Integer> array1 = new ArrayList<Integer>();
ArrayList<Integer> array2 = new ArrayList<Integer>();
array1 ==> (1,11,12,13,14,15,16,17,18)
array2 ==> (1,17,18)
是否有任何方法可以使用常用值创建另一个arraylist?
答案 0 :(得分:8)
使用此ArrayList
方法:
ArrayList#retainAll(java.util.Collection)
所以,把它放在你的代码中。
array1.retainAll(array2 );
实施例==&GT;
List<Integer> first_list = new ArrayList<Integer>();
first_list.add(10);
first_list.add(20);
first_list.add(30);
List<Integer> second_list = new ArrayList<Integer>();
second_list.add(40);
second_list.add(20);
second_list.add(30);
List<Integer> third_list = new ArrayList<Integer>(second_list);
third_list.retainAll(first_list);
for (int i = 0; i < third_list.size(); i++) {
System.out.println("===>" + third_list.get(i));
}
最后我们可以看到,third_list只有列表first_list和second_list之间的公共元素。
答案 1 :(得分:1)
只需迭代一个列表并检查另一个列表中是否存在值
ArrayList<Integer> common = new ArrayList<Integer>();
for(int i: array1){
if(array2.contains(i)){
common.add(i);
}
}
答案 2 :(得分:1)
试试这个,
ArrayList<Integer> result = new ArrayList<Integer>();
for (Integer value : array1)
{
if (array2.contains(value))
{
result.add(value);
}
}
答案 3 :(得分:0)
您可以使用apache commons库并使用ListUtils.intersection(list1,list2)
方法。