求两个集合的交集

来源:互联网 发布:淘宝上卖内衣的货源 编辑:程序博客网 时间:2024/05/21 09:57

方案1:对数据库而言可以利用内联查询取交集

方案2:可以使用位图索引,大数据两查抄去交集

方案3:取少的集合做排序(快排都可以),另外一个数组二分查找

方案4:取少的集合做HashMap,另外一个数组做Hash查找

方案5:Java ArrayList 自带Api 请参照如下部分


public class ListApp {    public static void main(String[] args) {        listAll();        listRetainAll();        listRemoveAll();    }    /**     * 求并集     */    public static void listAll() {        List<String> list1 = new ArrayList<String>();        list1.add("A");        list1.add("B");        List<String> list2 = new ArrayList<String>();        list2.add("C");        list2.add("B");        // 2个集合的并集        list1.addAll(list2);        System.out.println("并集:" + list1);    }    /**     * 求交集     */    public static void listRetainAll() {        List<String> list1 = new ArrayList<String>();        list1.add("A");        list1.add("B");        List<String> list2 = new ArrayList<String>();        list2.add("C");        list2.add("B");        // 2个集合的并集        list1.retainAll(list2);        System.out.println("交集:" + list1);    }    /**     * removeAll 差集     */    public static void listRemoveAll() {        List<String> list1 = new ArrayList<String>();        list1.add("A");        list1.add("B");        List<String> list2 = new ArrayList<String>();        list2.add("C");        list2.add("B");        // 2个集合的并集        list1.removeAll(list2);        System.out.println("差集:" + list1);    }}


原创粉丝点击