数组的拷贝
数组拷贝
Arrays.copyOf(原数组,长度z);会拷贝到长度为z新数组
集合的拷贝
集合中都是基本数据类型
list2.addAll(list1);
Collections.addAll(list2,list1);
集合的深拷贝
集合中有引用数据类型如自定义类型Student
如果再利用addAll();只是浅拷贝;对象还是同一个对象
深拷贝:可以讲对象写入流中,再读出来作为返回值给另一个集合;//
//深拷贝方法,需要时直接调用传入拷贝的对象,//obj必须实现接口Serializable;//才能被序列化 public static List<Student> deClone(Object obj) throws Exception { //将对象写到流里;流里写入对象的拷贝 ByteArrayOutputStream bo = new ByteArrayOutputStream(); ObjectOutputStream oo = new ObjectOutputStream(bo); oo.writeObject(obj); //从流里读出来 ByteArrayInputStream bi = new ByteArrayInputStream(bo.toByteArray()); ObjectInputStream oi = new ObjectInputStream(bi); return (List<Student>) oi.readObject();