Java中List是接口,没有clone方法,因此两个List<Obj> A和B,其中Obj是自定义的类,把B的值赋给A,方法有: A = new ArrayList<Obj>(B);
或者强制类型转换为ArrayList,使用clone方法: A = (List<Obj>) ( ArrayList<Obj> B).clone();这两种方法第一种效率较低,第二种会出现泛型类型转换的警告,安全性不好,不知道大家还有什么好的方法。

解决方案 »

  1.   

    addAll(Collection c) 
    ???
      

  2.   

    List <Obj>
    A和B都是List <Obj>类型,怎么会需要强转?
      

  3.   

    List<Object> a = new ArrayList<Object>();
    List<Object> b = new ArrayList<Object>();


    a.add(1);
    a.add(2);
    a.add(3);


    b.addAll(a);


    Iterator<Object> it = a.iterator();
    while(it.hasNext()){
    System.out.println(it.next());
    }


    Iterator<Object> it1 = b.iterator();
    while(it1.hasNext()){
    System.out.println(it1.next());
    }
      

  4.   

    需要A和B保持一致,因此不能 addAll
      

  5.   

    如果你要获取A的只读引用的话,可以这样;
    B = Collections.unmodifiableList(A)
    这样获得的引用就是A。但是不能改。
      

  6.   


    楼主这里所谓的保持一致是什么意思?
    是A中被添加元素后,B中也会多一个元素么?
    或者B中元素被更新了,A中也能看到?
    貌似跟最早的时候的说法有点不一样
      

  7.   

    意思是A是B的一份拷贝,B改变A就改变,A改变B不改变,在实际应用中A不会修改。
      

  8.   

    不要理解的那么深奥,其实很简单,就是如何高效的把B的值赋给A,使得A是B的一份拷贝,即A里面的值与B的相同