Java 比较两个arraylist并在第二个arraylist中去掉不常见的部分

Java 比较两个arraylist并在第二个arraylist中去掉不常见的部分,java,arraylist,Java,Arraylist,我有两张单子 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]); } } } for(inta=0;A使外部循环在列表(B

我有两张单子

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]);
        }
    }
}

for(inta=0;A使外部循环在列表(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));
}
//对于B的每个元素。。。
对于(i=0;i

注意:变量名违反java约定。我保留您的名称只是为了帮助您理解答案。请使用以小写字母开头的拼写名称。Commodore 64基本时间结束了

使外部循环在列表上迭代(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));
}
//对于B的每个元素。。。
对于(i=0;i

注意:变量名称违反java约定。我保留您的名称只是为了帮助您理解答案。请使用以小写字母开头的拼写名称。Commodore 64基本时间结束了

这应该可以很快做到:

B.retainAll(Arrays.asList(elements));

假设
B
是一个
列表
,而
元素
是一个数组。

这应该可以很快完成:

B.retainAll(Arrays.asList(elements));

假设
B
是一个
列表
,而
元素
是一个数组。

这里有一种方法。不是最干净的,但它可以工作:

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]
final Integer[]arr1=新整数[]{3,4,5};
最终整数[]arr2=新整数[]{3,7};
List arr2List=newarraylist(Arrays.asList(arr2));
arr2List.retainal(Arrays.asList(arr1));
System.out.println(arr2List);//输出[3]

这里有一种方法。虽然不是最干净的,但它可以工作:

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]
final Integer[]arr1=新整数[]{3,4,5};
最终整数[]arr2=新整数[]{3,7};
List arr2List=newarraylist(Arrays.asList(arr2));
arr2List.retainal(Arrays.asList(arr1));
System.out.println(arr2List);//输出[3]
导入java.util.ArrayList;
公共类test1{
公共静态void main(字符串[]args)
{
ArrayList a1=新的ArrayList();
a1.加入第(3)款;
a1.加入第(4)款;
a1.加入第(5)款;
ArrayList a2=新的ArrayList();
a2.加入第(3)款;
a2.加入(7);
a2.保留(a1);
对于(整数i:a2)
{
系统输出打印LN(i);
}
}
}
导入java.util.ArrayList;
公共类test1{
公共静态void main(字符串[]args)
{
ArrayList a1=新的ArrayList();
a1.加入第(3)款;
a1.加入第(4)款;
a1.加入第(5)款;
ArrayList a2=新的ArrayList();
a2.加入第(3)款;
a2.加入(7);
a2.保留(a1);
对于(整数i:a2)
{
系统输出打印LN(i);
}
}
}

问题出在哪里?不要让我们解码您的代码并理解问题。这是一个问题还是您希望我们为您编码?a[k]中的“k”是什么请使用正确的编码标准。变量名称不应以大写字母开头。
A
无效。请改用
indexA
。问题出在哪里?不要让我们解码您的代码并理解问题。这是个问题还是您希望我们为您编码?A[k]中的“k”是什么请使用正确的编码标准。变量名不应以大写字母开头。字符
A
无效。请改用
indexA
。但是OP不想删除公共项,而是保留它们。考虑到他预期的输出,这在我看来不是什么样子。尽管我可能误解了他的英语。但OP不想t删除普通的,但保留它们。考虑到他的预期输出,这在我看来并非如此。但我可能误解了他的英语。简单地删除不常见的。简单地删除不常见的。