java吧 关注:1,300,902贴子:12,848,337
  • 15回复贴,共1

求大佬帮帮

只看楼主收藏回复

这段代码中我用stream流转换一个map类型的数据,然后我用steam流遍历最开始的数据courseCategoryTree这个对象,在外面new了一个集合,符合条件添加进去,中间遍历从map获取的数据,这条数据和添加到list集合的数据是同一条,然后我给这数据赋值,按道理这改边的是map里面对应的数据,为什么最原始的数据也改变了



IP属地:福建来自Android客户端1楼2023-12-30 18:18回复
    笑死 新手能不能不要用stream


    IP属地:江苏来自Android客户端2楼2023-12-30 21:42
    收起回复
      2026-04-05 07:57:08
      广告
      不感兴趣
      开通SVIP免广告
      应该是map和List指向的是同一个DTO对象,要么map里的value重新new一个放入相同的值看看


      IP属地:中国台湾5楼2023-12-30 22:11
      回复
        对象都是引用类型,不管外面包裹多少层,发生多少次改变,引用没变就是会变化,你先学学引用类型和值类型区别,在c还有结构类型


        IP属地:日本来自Android客户端6楼2023-12-31 01:38
        收起回复
          我知道了,这个用stream流转化的map集合,属于浅拷贝,就是只复制了引用地址,如果去操作map,原来的数据也会跟着变


          IP属地:福建来自Android客户端7楼2023-12-31 15:23
          回复