数组操作

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class Common {

    /**
     * 数组a字符串是否包含数组b中的字符串
     * @param a
     * @param b
     * @param <T>
     * @return
     * 比如:String a = {"1", "2"}  String b = {"1"}, 则a包含b
     *
     */
    public static boolean isContains(String[] a, String[] b) {
        if (a.length == 0 || b.length == 0) {
            return false;
        }
        Set<String> aSet = new HashSet(Arrays.asList(a));
        Set<String> bSet = new HashSet(Arrays.asList(b));
        aSet.addAll(bSet);
        return aSet.size() == a.length;
    }

    /**
     * 判断数组是否有交集
     * @param a
     * @param b
     * @return
     */
    public static boolean isContainsAny(String[] a, String[] b) {
        // 把较长的数组转换为set
        Set<String> set = new HashSet(Arrays.asList(a.length > b.length ? a : b));

        // 遍历短数组
        for (String str : a.length > b.length ? b : a) {
            if (set.contains(str)) {
                return true;
            }
        }
        return false;
    }

}

 

posted @ 2019-06-22 16:17  cc-robot  阅读(182)  评论(0编辑  收藏  举报