數組操做

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;
    }

}
相關文章
相關標籤/搜索