日期:2014-05-18  浏览次数:20735 次

有4个HashSet<String>集合,set1,set2,set3,set4,怎样求出这四个集合的公共集合?
这个4个集合中,有可能有的集合为null,有的集合的size为0.
set有一个retainAll的方法 ,是取2个set集合公共数据。
但是有的集合可能为null,就是还没有初始化。
哪个集合为null不确定,这种情况是不是要一个一个的做if判断,共要做24种判断?

有没有简单点的办法,求解。

------解决方案--------------------
对size为0的计算,对为null的不计算,如果两种情况都不计算的需要改判断条件

        Set set = null;
        if (set1 != null) {
            if (set == null) {
                set = set1;
            }
        }
        if (set2 != null) {
            if (set == null) {
                set = set2;
            } else {
                set.retainAll(set2);
            }
        }
        if (set3 != null) {
            if (set == null) {
                set = set3;
            } else {
                set.retainAll(set3);
            }
        }
        if (set4 != null) {
            if (set == null) {
                set = set4;