//示例
//学生类
package com.softstome.clone.arrayCopy;
import java.io.Serializable;
public class Student implements Serializable ,Cloneable{
private static final long serialVersionUID = -4233424245102819008L;
private String stuNo;
private String stuName;
public Student() {
}
public Student(String stuNo , String stuName) {
super();
this.stuName = stuName;
this.stuNo = stuNo;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public String getStuNo() {
return stuNo;
}
public void setStuNo(String stuNo) {
this.stuNo = stuNo;
}
@Override
protected Object clone() throws CloneNotSupportedException {
// TODO Auto-generated method stub
return super.clone();
}
}
//集合复制演示类
package com.softstome.clone.arrayCopy;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/*
*
* List 中存对象 ,存的是地址
*
* 如果要深层复制,可以循环List,然后clone一个新对象 ,放到新的集合中,这样可以形成深层复制(克隆)的效果。
*
* 还有一种方式,通过序列化的方式实现集合的深层复制(推荐)
*
*
* */
public class ListCopy {
/*
* 8大 基本类型 和String类型的数组复制
* */
public void testListCopyOfBasic(){
List list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add(12);
List listCopy= new ArrayList(list);
listCopy.add("ww");
listCopy.set(0, "ss");
System.out.println(list+" "+listCopy);
}
/*
* 集合复制 对象 只是复制了地址
*
*通过 这种形式复制 List<Student> listCopy= new ArrayList<Student>(list);
*
*
* */
public void testListCopyOfStu(){
List<Student> list = new ArrayList<Student>();
Student stu1=new Student("01", "张三");
list.add(stu1);
list.add(new Student("02", "李四"));
list.add(new Student("03", "王五"));
List<Student> listCopy= new ArrayList<Student>(list);
listCopy.add(new Student("04", "贺六 "));
listCopy.set(1, new Student("05", "琪琪"));
stu1.setStuName("张三1");
System.out.println(list);
System.out.println(listCopy);
System.out.println(list.get(0).getStuName()+" "+listCopy.get(0).getStuName());
}
/*
* 集合复制 对象 只是复制了地址
*
*通过 这种形式复制
for (Student stu : list) {
listCopy.add(stu);
}
* */
public void testListCopyOfStu1(){
List<Student> list = new ArrayList<Student>();
Student stu1=new Student("01", "张三");
list.add(stu1);
list.add(new Student("02", "李四"));
list.add(new Student("03", "王五"));
List<Student> listCopy= new ArrayList<Student>();
for (Student stu : list) {
listCopy.add(stu);
}
listCopy.add(new Student("04", "贺六 "));
listCopy.set(1, new Student("05", "琪琪"));
stu1.setStuName("张三1");
System.out.println(list);
System.out.println(listCopy);
System.out.println(list.get(0).getStuName()+" "+listCopy.get(0).getStuName());
}
public void testListCopyDeep(){
List<Student> list = new ArrayList<Student>();
Student stu1=new Student("01", "张三");
list.add(stu1);
list.add(new Student("02", "李四"));
list.add(new Student("03", "王五"));
List<Student> listCopy= new ArrayList<Student>();
for (Student stu : list) {
Student cloneStu=null;
try {
cloneStu = (Student) stu.clone();
} catch (CloneNotSupportedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
listCopy.add(cloneStu);
}
listCopy.add(new Student("04", "贺六 "));
listCopy.set(1, new Student("05", "琪琪"));
stu1.setStuName("张三1");
System.out.println(list);
System.out.println(listCopy);
System.out.println(list.get(0).getStuName()+" "+listCopy.get(0).getStuName());
}
public static void main(String[] args) {
ListCopy listcopy=new ListCopy();
//listcopy.testListCopyOfBasic();
//listcopy.testListCopyOfStu();
//listcopy.testListCopyOfStu1();
listcopy.testListCopyDeep();
}
}
分享到:
相关推荐
在Java编程中,对象复制是一项常见的任务,特别是在处理模型(Model)和视图对象(VO)时。模型对象通常用于封装业务数据,而视图对象则用于展示这些...在处理集合复制时,务必注意是否需要深拷贝以确保数据的独立性。
4. **集合复制**: 当需要复制一个集合到另一个集合时,Java提供了`Collection#copy`方法和`Arrays#copyOf`方法进行基本的复制,但这仅限于元素是不可变对象的情况。对于可变对象,需要进行深复制,可以使用`Stream` ...
网上有好多实体转另一个实体的方法,但是几乎没有实体集合直接转另一个实体集合的工具类,自己写了一个,供大家使用。其实原理很简单,就是泛型。
hydra - 多进程 MongoDB 分片集合复制器 执照 有关许可条款,请参阅随附的 LICENSE.txt 文件。 目的 这是执行从一个 MongoDB 集合到另一个集合的实时复制的工作参考代码,对您的生产 MongoDB 集群的影响很小或没有...
- 使用`clone()`、`toArray()`、`Collections.copy()`进行集合复制。 - `List`到`Array`的转换,`Arrays.asList()`将数组转换为List,`ArrayList.toArray()`将List转换回数组。 8. **集合的操作**: - 添加元素...
并集操作是将当前集合复制到一个新的集合,然后添加另一个集合的所有元素。补集操作是创建一个全集,然后从全集中移除当前集合的所有元素。 为了调试和验证这些操作,我们可能编写一个主程序,创建多个集合对象,...
拷贝构造函数用于将一个集合复制到另一个集合,析构函数用于释放动态内存。 构造函数 类 int_set 的构造函数 int_set(int x) 用于初始化一个集合,参数 x 表示集合的最大大小。构造函数会分配动态内存,并将集合的...
vs2013工程 收集了几个简单易懂的C#观察者模式示例,均是控制带程序,可以直接运行看结果,代码中有注释
已复制的AI安全检测项目集合_ AI安全测试数据库.zip已复制的AI安全检测项目集合_ AI安全测试数据库.zip已复制的AI安全检测项目集合_ AI安全测试数据库.zip已复制的AI安全检测项目集合_ AI安全测试数据库.zip已复制的...
5. `Copy(Set *set)`:将当前集合复制到传入的`set`指针所指向的集合中。 6. `Equal(Set *set)`:比较两个集合是否相等,如果元素个数和内容都相同,则返回`True`,否则返回`False`。 7. `Print()`:打印集合的所有...
可以将集合复制到不同的数据库中。点击“copy”按钮后,将显示复制的集合信息。 知识点总结: 1. MongoVUE 是一个功能强大且实用的 MongoDB 客户端工具。 2. 基础操作包括新增一个连接、查看所有数据、查看特定的...
这款名为“电商神器-复制链接地址-剪贴板工具集合”的压缩包提供了一种高效的方法来管理与复制网页链接,极大地提升了工作流程的便捷性。这个工具集的核心功能是帮助用户快速、批量地收集和处理链接地址,减少了手动...
- 首先将集合A的所有元素复制到集合C中。 - 然后遍历集合B的元素,如果该元素不在集合C中,则添加到集合C中。 - 如果集合C已满,则进行扩容。 - **AnB(A, B, D)**:实现集合A与集合B的交集操作,并将结果保存在...
综上所述,这个学习教案涵盖了在CAD软件中进行精确测量、高效组织图素集合以及移动和复制图素的关键技术。这些知识点对于理解和使用这类专业软件至关重要,无论是进行产品设计、工程分析还是制造流程规划,都是必不...
可以使用不同的方法为集合赋值,包括从其他集合复制数据。 ##### 七、比较集合 可以比较两个集合是否相等,或者检查一个集合是否包含另一个集合的所有元素。 ##### 八、在SQL语句中使用PL/SQL的集合类型 **1、...
数据备份是这一切的基础,它是为了预防因操作失误、系统故障等原因导致的数据丢失,将整个系统数据或重要数据集合复制到其他存储介质的过程。数据复制技术是灾备系统的核心,它确保生产数据和灾备数据的一致性。 ...
- **复制集合**:使用`db.user.copyTo("user1")`将`user`集合复制为`user1`集合。 ##### 3.3 数据操作 - **插入数据**:向集合中插入数据,例如: ```javascript db.user.insert({"username":"jack","age":18,...
正确选择创建方式取决于你的具体需求,如是否需要预先分配空间、是否需要从现有集合复制数据等。此外,`List<T>`还提供了丰富的操作方法,如查找、排序、删除等,这些也是日常开发中经常使用的功能。
测量移动复制集合以及集合的用法学习课程.pptx
它可以将单个值转换为集合,或将整个集合复制到另一个集合属性。 在实际项目中,BeanUtil不仅限于JavaBeans,它也可以应用于任何具有getter和setter方法的对象,使其在POJO(Plain Old Java Object)中同样适用。...