JAVA链表问题 链表赋值给另一个链表后,两个链表会互相影响

各位大佬我有点不懂,为什么我把链表lk赋值给链表ll后,对ll进行排序,也会影响到lk?怎么做才能不影响呢?.......

谢谢!

为什么要把lk付给ll呢,分别操作就行了

问题:

你这个是浅拷贝,两个list使用的同一个引用(使用的是同一个物理地址)

解决:

如果要改变拷贝后的数据,不改变原始数据,需要深拷贝;

代码:

List<Book> list = new LinkedList<Book>();

t.add("第一本",123,"出版社1");

t.add("第二本",234,"出版社2");

t.add("第三本",345,"出版社3");

List<Book> newList = new LinkedList<Book>();

// 循环赋值

for(int i=0;i<list.size;i++){

 Book book = list.get(i);

// 克隆新Book对象进行赋值

newList.add(book .clone());

}

这样就解决了,你再修改这两个集合中的任何数据都不会相互影响了

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632