0

我有两个清单

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

4 回答 4

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 时代已经结束

于 2013-03-08T06:24:02.633 回答
1

这应该很快做到:

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

假设B是一个List, 和elements- 一个数组。

于 2013-03-08T06:25:09.720 回答
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]
于 2013-03-08T06:28:16.810 回答
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);
        }
    }

}
于 2013-03-08T07:23:27.277 回答