Java中List是接口,没有clone方法,因此两个List<Obj> A和B,其中Obj是自定义的类,把B的值赋给A,方法有: A = new ArrayList<Obj>(B);
或者强制类型转换为ArrayList,使用clone方法: A = (List<Obj>) ( ArrayList<Obj> B).clone();这两种方法第一种效率较低,第二种会出现泛型类型转换的警告,安全性不好,不知道大家还有什么好的方法。
或者强制类型转换为ArrayList,使用clone方法: A = (List<Obj>) ( ArrayList<Obj> B).clone();这两种方法第一种效率较低,第二种会出现泛型类型转换的警告,安全性不好,不知道大家还有什么好的方法。
???
A和B都是List <Obj>类型,怎么会需要强转?
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());
}
B = Collections.unmodifiableList(A)
这样获得的引用就是A。但是不能改。
楼主这里所谓的保持一致是什么意思?
是A中被添加元素后,B中也会多一个元素么?
或者B中元素被更新了,A中也能看到?
貌似跟最早的时候的说法有点不一样