首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

小算法求思路解决方法

2012-10-13 
小算法求思路、有两个集合,A集合内容为:{1、2、3、4},B集合内容为:{1、2、5、6},两个集合的对称差定义为A Δ B (

小算法求思路
、有两个集合,A集合内容为:{1、2、3、4},B集合内容为:{1、2、5、6},两个集合的对称差定义为A Δ B = (A ? B) ∪(B ? A),上述A、B两集合的对称差为{3、4、5、6}。编写一个程序,用散列集求两个集合A、B的对称差集合,即求 (A ? B) ∪(B ? A),

[解决办法]

Java code
import java.util.ArrayList;import java.util.HashSet;public class Test {    public static void main(String[] args){        //init        ArrayList<Integer> a1 = new ArrayList<Integer>();        ArrayList<Integer> a2 = new ArrayList<Integer>();        int[] arr1 = new int[]{1,2,3,4};        int[] arr2 = new int[]{1,2,5,6};        for(int i = 0;i < arr1.length;++i) a1.add(arr1[i]);        for(int i = 0;i < arr2.length;++i) a2.add(arr2[i]);        //get result        ArrayList<Integer> result = findResult(a1, a2);        System.out.println(result.toString());    }        private static ArrayList<Integer> findResult(ArrayList<Integer> a1,ArrayList<Integer> a2){        @SuppressWarnings("unchecked")        ArrayList<Integer> result = (ArrayList<Integer>) a1.clone();        result.removeAll(a2);        a2.removeAll(a1);        result.addAll(a2);        return result;    }} 

热点排行
Bad Request.