晚上好,我有一个简单的任务,就是在两个列表中找到共同的数字。但我有一个疯狂的错误。我傻眼了,因为我无法想象可能出了什么问题。
public class Test {
public static List<Integer> same(List<Integer> a1, List<Integer> a2){
List<Integer> lister = new ArrayList<>();
for(int i = 0; i < a1.size() ; i++){
for(int j = 0; j < a2.size(); j++){
System.out.print(a1.get(i) + " vs " + a2.get(j));
if(a1.get(i) == a2.get(j)){
System.out.print("equals");
lister.add(a2.get(j));
}
System.out.println();
}
}
return lister;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int n = in.nextInt();
List<Integer> list1 = new ArrayList<>();
for (int i = 0; i < n; i++) {
list1.add(in.nextInt());
}
System.out.println();
int m = in.nextInt();
List<Integer> list2 = new ArrayList<>();
for (int i = 0; i < m; i++) {
list2.add(in.nextInt());
}
List<Integer> result = same(list1,list2);
System.out.println(result.size());
in.close();
}
}
输入 :
5 13 20 22 43 146 4 13 22 43 146
输出 :
13 vs 13equals
13 vs 22
13 vs 43
13 vs 146
20 vs 13
20 vs 22
20 vs 43
20 vs 146
22 vs 13
22 vs 22equals
22 vs 43
22 vs 146
43 vs 13
43 vs 22
43 vs 43equals
43 vs 146
146 vs 13
146 vs 22
146 vs 43
146 vs 146
3
所以 146 != 146 。我的错误在哪里?
谢谢。