我已经编写了一个程序的代码,该程序需要两个列表,并且如果第二个数组的所有元素也出现在第一个列表中阵列。然而,这段代码只适用于两个大小相等的数组(例如{1,2,3}和{3,2,1}返回true),但如果第一个数组大于第二个数组,我会得到一个rangeCheck异常(完全期待这一点,公平)。如何检查一个ArrayList是否包含在另一个ArrayList中,并且这两个列表的大小不同
import java.util.*;
public class Ex8 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("How many numbers do you wish to enter into the
array?");
int thisMany = scanner.nextInt();
ArrayList<Integer> numbers = new ArrayList<Integer>();
System.out.println("Please enter some numbers, separated by
spaces");
for(int i = 0; i<thisMany; i++) {
int x = scanner.nextInt();
numbers.add(x);
}
Scanner sc = new Scanner(System.in);
System.out.println("How many numbers do you wish to enter into the
second array?");
int nowThisMany = sc.nextInt();
ArrayList<Integer> numbers2 = new ArrayList<Integer>();
System.out.println("Enter some numbers, separated by spaces");
for(int j = 0; j<nowThisMany; j++) {
int y = sc.nextInt();
numbers2.add(y);
}
System.out.println(Arrays.toString(numbers.toArray()));
System.out.println(Arrays.toString(numbers2.toArray()));
isContained(numbers, numbers2);
System.out.println(isContained(numbers, numbers2));
}
public static boolean isContained(ArrayList<Integer> numbers,
ArrayList<Integer> numbers2) {
boolean equalsTest = false;
for(int i = 0; i<numbers.size(); i++) { //This gives exception if
//both arrays aren't the same size
if(numbers.get(i) == numbers2.get(i)) {
equalsTest = true;
}
}
return equalsTest;
}
}
任何人都可以向我解释如何检查第二个数组与第一个数组没有运行异常?谢谢
'布尔集合.containsAll(集合> c);' – davidxxx