例如我有一個 :list
 listspeed (x,y,z,1,2,3,4)<------list里所含有的物件(即listspeed.get(0)=x)現在有另一個list
 listadv (a,b,c,4,5,6) <------- 也是list里所含有的物件如果我想將兩個list 的東西結合listspeed.add(listadv) <--這樣寫法對嗎?
listspeed = (x,y,z,1,2,3,a,b,c,4,5,6) <--會得到這個結果嗎?另一個問題,如果我用了listspeed.clear();之後還可以用listspeed.add(obj)嗎?
我想做到,某個情況就把listspeed所有內容清除,但遇到另一個情況,我又要把東西重新放進listspeed里,可以嗎?

解决方案 »

  1.   

    listspeed.add(listadv) <--這樣寫法對嗎?
    listspeed = (x,y,z,1,2,3,a,b,c,4,5,6) <--會得到這個結果嗎?
    -----------------------------------------
     试一下就知道了 不会   遍历第2个放到第一个里  还要判断是否重复
      

  2.   

    一个问题
    listspeed (x,y,z,1,2,3,4)
     listadv (a,b,c,4,5,6) 
    ArrayList arr = new ArrayList();
    arr.add(listspeed );
    arr.add(listadv );
    二个问题
    个人觉得可以
      

  3.   

    第一个问题:listspeed.add(listadv)不会得到
    (x,y,z,1,2,3,a,b,c,4,5,6)
    这样的结果,
    而得到的是
    (x,y,z,1,2,3,(a,b,c,4,5,6))
    这样的结果,因为listadv是整个作为一个元素加到listspeed中的。楼上的方法也不对,楼上的代码结果是
    ((x,y,z,1,2,3),(a,b,c,4,5,6))
    也不是楼主想要的。正确应该用addAll(),即
    listspeed.addAll(listadv)
      

  4.   

    正确应该用addAll(),即
    listspeed.addAll(listadv)
    ======================================
    会多出一个4吧 感觉只能一个一个遍历并且判断
      

  5.   

    import java.util.ArrayList;
    import java.util.Iterator;public class Test{
    ArrayList al1=new ArrayList();
    ArrayList al2=new ArrayList();

    public Test(){
    this.al1.add("x");
    this.al1.add("y");
    this.al1.add("z");
    this.al1.add("1");
    this.al1.add("2");
    this.al1.add("3");
    this.al1.add("4");


    this.al2.add("a");
    this.al2.add("b");
    this.al2.add("c");
    this.al2.add("4");
    this.al2.add("5");
    this.al2.add("6");
    //用addAll有两个4
    this.al1.addAll(this.al2);

    Iterator iter=this.al1.iterator();
    while(iter.hasNext()){
    System.out.print(iter.next());
    }
    }

    public static void main(String args[]){
    new Test();
    }
    }
      

  6.   

    import java.util.ArrayList;
    import java.util.Iterator;public class Test{
    ArrayList al1=new ArrayList();
    ArrayList al2=new ArrayList();
    String str2="";
    public Test(){
    this.al1.add("x");
    this.al1.add("y");
    this.al1.add("z");
    this.al1.add("1");
    this.al1.add("2");
    this.al1.add("3");
    this.al1.add("4");


    this.al2.add("a");
    this.al2.add("b");
    this.al2.add("c");
    this.al2.add("4");
    this.al2.add("5");
    this.al2.add("6");

    Iterator it=this.al1.iterator();
    while(it.hasNext()){
    this.str2=it.next()+"";
    }



    Iterator iter=this.al2.iterator();
    while(iter.hasNext()){
    String str=iter.next().toString();
    int i=this.str2.indexOf(str);
    if(i==-1){
    this.al1.add(str);
    }


    }
    Iterator it2=this.al1.iterator();
    while(it2.hasNext()){
    System.out.println(it2.next());
    }
    }

    public static void main(String args[]){
    new Test();
    }
    }
    //这种写法可以不把重复的4加进去
    //应该有简便的写法 但我不会 呵呵
      

  7.   

    list a;
    list bList ab = new ArrayList();
    ab=a;
    ab.add(b);
      

  8.   

    放到 set 里面在取出来就没有重复了
      

  9.   

    Set set = new HashSet();
    set.addAll(this.al1);
    this.al1.clear();
    this.al1.addAll(set);这样就可以去除重复了
      

  10.   

    for(Iterator it =listadv.iterator();it.hasNext();)
    {
      Object elm = it.next();
      if(listspeed.contains(elm))
      {
       listspeed.remove(elm);
      }  
    listspeed.add(elm);
     }
    listadv ==null;
    应该就这样写了,自己在封装一下
      

  11.   


    这样无法承受大数据量(很慢)---------------------------------------------------------------for(Iterator it =listadv.iterator();it.hasNext();)
    {
      Object elm = it.next();
      if(listspeed.contains(elm))
      {
       listspeed.remove(elm);
      }  
    listspeed.add(elm);
     }
    listadv ==null;
    这样可能小数据量的时候慢点,但它可以承受大数据量(会快很多)
    -------------------
    Set set = new HashSet();
    set.addAll(this.al1);
    this.al1.clear();
    this.al1.addAll(set);这样就可以去除重复了