求两个集合的并集

解决方案 »

  1.   

    Set 里面有一个 retainAll 方法
      

  2.   

    Set 里面的 
    addAll 是合集
    retainAll 是交集
      

  3.   

    对啊  按照楼上的方法  就用现成的Set类就可以了啊   或者你把两个集合分别放在两个数组里去  然后遍历两个数组 加到Set中去  因为Set本来就是保证不能有重复的  所以就是他们的并集啊
      

  4.   


    public class mni 
    {
    public static void main(String []args)
    {
    int []a={1,2,3,4};
    int []b={4,3,2,1};
    int k=0;
    int i,j;
    int c[]=new int[100];
    for(i=0;i<a.length;i++)
    c[k++]=a[i];
    k=i;
    for(i=0;i<a.length;i++)
    {
      for(j=0;j<b.length;j++)
    if(b[j]!=a[i])
    {
    c[k++]=b[j];
      continue;
      }
      }
    System.out.println("并集:"+c[k]);
    }}
    这样写错在那里了啊?谢谢!
      

  5.   

    for (i = 0; i < b.length; i++) {
    for (j = 0; j < a.length; j++)
    if (b[i] == a[j]) {
    break;
    }
    if (j==a.length)
    c[k++] = b[i];
    }
    如果不考虑性能,利用map的特性。
            Map<Integer,Integer> map=new HashMap<Integer,Integer>();
    for(int i:a)
        map.put(i, i);
    for(int i:b)
        map.put(i, i);
    for(Integer i:map.keySet())
       System.out.println(i);
    如果考虑性能,你应该先把元素少那个的用快速算法排序,然后顺序遍历多那个,用二分法进行查找少的那个,没有的话就给加到末尾!但是每查找的长度始终为少的那个集合的原始长度。