我有两个列表
array A = [1,3,5]//jst array A
list B = [3,7]//ArrayList B
我希望列表B中有7个
for(int A=0;A<elements.length;A++){
for(int r=0;r<B.size();r++){
if(A[k] != B.get(r)){
pln(A[k]);
}
}
}
答案 0 :(得分:1)
使外循环遍历列表(B)并检查B的每个元素,如果它是数组的成员。它只是反过来。
// for each element of B ...
for (i = 0; i < B.size(); i++ ) {
// ... check each element of A
for (j = 0; j < A.length; j++) {
// if it is equal.
if (B.get(i) == A[j]) {
// if yes, continue with the next B
break;
}
}
// so none of the elements of A matched the element of B.
System.out.println(B.get(i));
}
注意:变量名违反了java约定。我只保留你的名字来帮助你理解答案。请使用以小写字母开头的拼写名称。 Commodore 64 Basic时间结束了
答案 1 :(得分:1)
这应该很快做到:
B.retainAll(Arrays.asList(elements));
假设B
是List
,elements
是一个数组。
答案 2 :(得分:1)
这是一种方式。不是最干净但有效:
final Integer[] arr1 = new Integer[] { 3, 4, 5 };
final Integer[] arr2 = new Integer[] { 3, 7 };
List<Integer> arr2List = new ArrayList<Integer>(Arrays.asList(arr2));
arr2List.retainAll(Arrays.asList(arr1));
System.out.println(arr2List); // output [3]
答案 3 :(得分:0)
import java.util.ArrayList;
public class test1 {
public static void main(String[] args)
{
ArrayList<Integer> a1 = new ArrayList();
a1.add(3);
a1.add(4);
a1.add(5);
ArrayList<Integer> a2 = new ArrayList();
a2.add(3);
a2.add(7);
a2.retainAll(a1);
for(Integer i:a2)
{
System.out.println(i);
}
}
}