如果两组数20 30 10和20 5 30 10 5 20。
第二组数在一组中有那么输出h没有则输出m
public static void main(String[] args) {
int a[] = {20, 30, 10};
int b[] = {20, 5, 30, 10, 5, 20};
Arrays.sort(a);
// 第一种:排序第一组,遍历第二组
for (int item : b) {
boolean flag = false;
for (int i = 0; i < a.length; i++) {
if(a[i] > item){
continue;
}
if(a[i] == item){
flag = true;
System.out.println(item+": h");
}
}
if(!flag){
System.out.println(item+": m");
}
}
// 第二种,两组都排序,然后i是a的下标,j是b的下标。递进的方式遍历
Arrays.sort(b);
for (int i = 0,j=0; j < b.length;) {
// 第一个数组遍历结束
if(i >= a.length){
for (int k = j; k < b.length; k++) {
System.out.println(b[k] + ": m");
}
return;
}
if(a[i] == b[j]){
System.out.println(b[j] + ": h");
j++;
}else if(a[i] > b[j]){
System.out.println(b[j] + ": m");
j++;
}else if(a[i] < b[j]){
i++;
}
}
}
有contain函数或者自己写啊,从数组2拿一个数出来遍历数组1判断有没有,这个很基础的,跟JAVA的面向对象没啥关系
class Solution {
public static void main(String[] args) {
int[] arr1 = {20,30,10};
int[] arr2 = {20,5,30,10,5,20};
for1:for(int i = 0;i < arr2.length;i++){
for(int j = 0;j < arr1.length;j++){
if(arr1[j] == arr2[i]){
System.out.print("h ");
continue for1;
}
}
System.out.print("m ");
}
}
}
public class Test {
public static void main(String[] args) {
List<Integer> a = Arrays.asList(20,30,10);
List<Integer> b = Arrays.asList(20,5,30,10,5,20);
if(a.containsAll(b)){
System.out.println("h");
}
else{
System.out.println("m");
}
}
}