m0_53639727
FangChang-
2021-06-01 16:53
采纳率: 50%
浏览 84
已采纳

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

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

谢谢!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • technologist_48
    CSDN专家-Fay 2021-06-01 16:56
    已采纳

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

    点赞 1 评论
  • qq_42319005
    叫我磊哥 2021-06-01 17:54

    问题:

    你这个是浅拷贝,两个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());

    }

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

     

    点赞 1 评论
  • QA_Assistant
    有问必答小助手 2021-06-01 17:49

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

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

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

    点赞 评论

相关推荐