一个问题关于数组遍历

如果两组数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");
        }
    }
}