我有两个清单
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]);
}
}
}
使外部循环遍历列表 (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 时代已经结束
这应该很快做到:
B.retainAll(Arrays.asList(elements));
假设B
是一个List
, 和elements
- 一个数组。
这是一种方法。不是最干净的,但它有效:
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]
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);
}
}
}