本帖最后由 李哲 于 2012-3-30 18:58 编辑
- /*
- 思路就是将int数组转为list,然后使用list的将list集合去除两个list集合的交集,以及将两个list集合相结合的方法
- 就是先求a去除a和b的交集10,20后只剩30,b去除和b的交集10,20后只剩40,50,60,然后将两个集合合并,然后再将list转回int数组
- */
- import java.util.*;
- class ComABC
- {
- //int数组转list方法
- public static ArrayList Int2List(int[] arr)
- {
- ArrayList li=new ArrayList();
- for (int x=0;x<arr.length ;x++ )
- {
- li.add(new Integer(arr[x]));
- }
-
- return li;
- }
- //list集合转int数组方法
- public static int[] List2Int(List list)
- {
- int[] arr=new int[list.size()];
- for (int x=0;x<list.size() ;x++ )
- {
- arr[x]=(int)list.get(x);
- }
-
- return arr;
- }
- public static void main(String[] args)
- {
- int [] a = {10,20,30};
- int [] b ={10,20,40,50,60};
- /*原来是在转为list后定义list临时集合,但是可能是因为list是对象的引用,
- 即使将list集合lia赋予临时list集合litemp,但是lia改变后,litemp临时集合随着改变,无法起到临时集合的作用,
- 所以先在int数组阶段定义一个和a相同的临时数组
- */
- int [] temp=a;
-
-
- //数组转list
- ArrayList lia=Int2List(a);
- ArrayList lib=Int2List(b);
- ArrayList litemp=Int2List(temp);
-
-
- //10,20,30去除交集10,20,变为30
- lia.removeAll(lib);
- //10,20,40,50,60去除交集10,20,变为40,50,60
- lib.removeAll(litemp);
- //30和40,50,60结合
- lia.addAll(lib);
- //list转数组
- int[] c=List2Int(lia);
- //数组转为字符串
- String str=Arrays.toString(c);
- //打印
- System.out.println(str);
- }
-
- }
复制代码 |