java:求两个set中的相同元素

这是上月阿里电面没有回答上的问题,特此纪念一下。

  • 使用java自带函数求并集的方式:
import java.util.HashSet;
import java.util.Set;

public class Test {

    public static void main(String[] args) {
        Set result = new HashSet();
        Set set1 = new HashSet(){{
            add(1);
            add(3);
            add(5);
        }};

        Set set2 = new HashSet(){{
            add(1);
            add(2);
            add(3);
        }};

        result.clear();
        result.addAll(set1);
        result.retainAll(set2);
        System.out.println("交集:"+result);

        result.clear();
        result.addAll(set1);
        result.removeAll(set2);
        System.out.println("差集:"+result);

        result.clear();
        result.addAll(set1);
        result.addAll(set2);
        System.out.println("并集:"+result);

    }

}
  • 还有一种不用java函数的解决方式:

    1. 将两个set的元素放到一个数组里面,然后用快速排序将数组排序。
    2. 遍历有序数组,统计相等的相邻元素对的个数。

你可能感兴趣的:(java,set,相同元素,并集,排序)