首页 > 其他分享 >浅拷贝问题

浅拷贝问题

时间:2023-01-05 10:00:09浏览次数:56  
标签:smallList ArrayList List 问题 add 集合 拷贝

(53条消息) ArrayList的add方法,浅拷贝_oxygen-hhh的博客-CSDN博客

描述:

    //接收大集合参数,返回小集合结果
   public static ArrayList<List<String>> smallList(List<String> bigList){
       //创建小集合存储偶数
       List<String> smallList = new ArrayList<>();

       ArrayList<List<String>> newList = new ArrayList<>();

       for (String s : bigList) {
           smallList.add(s);
           if (smallList.size() == 2) {

               newList.add(new ArrayList<>(smallList));

               smallList.clear();
          }
      }
       return newList;
  }

合并偶数集合,在List集合当中继续插入list,size>2时候清空小的集合。会把大集合全部数据清空。

原因:List的add方法,每次add的时候是吧对象的地址add到数组最后,而没有新创建对象,所以每次add以后指向的都是小的list的地址,当小list的值发生改变时侯,就会影响到大的List的值。

解决方案:浅拷贝,构造另一个引用。

  • 延申:浅拷贝和深拷贝

    • 浅拷贝:如果是基本数据类型,只拷贝值(地址不变),引用类型(地址改变),拷贝一份引用类型

    • 深拷贝:无论拷贝对象是引用类型还是基本类型,都做一份拷贝,拷贝对象的地址改变。

标签:smallList,ArrayList,List,问题,add,集合,拷贝
From: https://www.cnblogs.com/zzdd/p/17026723.html

相关文章

  • 我是这样解决 HBuilderX 安卓基座安装失败的问题
    本文简介点赞+关注+收藏=学会了记录一个在使用HBuilderX开发App时遇到的问题。同步资源失败,未得到同步资源的授权,请停止运行后重新运行,并注意手机上的授权......
  • C++:深拷贝和浅拷贝
    1.什么是浅拷贝和深拷贝对于基本类型的数据以及简单的对象,它们之间的拷贝非常简单,就是按位复制内存。例如:classBase{public:Base():m_a(0),m_b(0){}Base......
  • ES深度分页问题
    简介:由于es特殊的储存机制,单个索引的大量数据被均匀随机的存储在不同的分片上,列:每个分片可以存储一万条数据,分页需求:查询总数1000-1010的数据按时间排序,即第一百页的前十......
  • 1_使用swiper数组对象循环图片遇到的问题
    今天在练习微信小程序的swiper组件时,想用列表循环出图片,发现图片一直没出来,控制台也没有报错,后来仔细一看,原来是语法格式写错了。以下是我列表循环踩过的坑:一:微......
  • 百钱百鸡问题方案数的 $O(n)$ 及 $O(1)$ 解法
    目录前置知识问题描述问题分析\(O(n)\)解法\(O(1)\)解法前置知识解决本题需要的前置知识是二元一次方程组求解但是就算还没有学到二元一次方程求解应该看一下下面的......
  • Watt Toolkit(原steam++)的host代理443端口被占用的问题(通解)
    因为某些原因需要使用443端口,但服务总是启动不了,提示443端口被占用,于是查询了一下,win+R→cmd→netstat-aon|findstr“443”,找到443端口对应的进程PIDctrl+alt+delete......
  • 树形 dp 与树上问题
    NFLS集训笔记20220802-树形dp进阶与树上问题综合\(\text{ByDaiRuiChen007}\)I.洛谷[P2585]-三色二叉树\(\text{Link}\)思路分析简单题,建出树后暴力枚举当前......
  • hmac php java结果不一样问题
    比如我们有个服务是PHP提供的,要求的签名方式hmacSha256取摘要,然后Base64编码转化成可见字符。PHP那边的源码是这样的$result=base64_encode(hash_hmac("SHA256"......
  • hmacSha256 php java结果不一样问题
    比如我们有个服务是PHP提供的,要求的签名方式hmacSha256取摘要,然后Base64编码转化成可见字符。PHP那边的源码是这样的$result=base64_encode(hash_hmac("SHA256"......
  • C语言:任意数量的鸡兔同笼问题
    #include<stdio.h>//任意鸡兔同笼问题main(){inta,b,ji,tu,d=0;scanf("%d%d",&a,&b);for(ji=0;ji<=a+b;ji++){for(tu=0;tu<=a+b;tu++)......