汽车网站开发方案郑州专业做网站企业
web/
2025/9/30 4:33:46/
文章来源:
汽车网站开发方案,郑州专业做网站企业,wordpress无法显示文章,湖南专业seo优化公司首先我们在new 一个对象的时候#xff0c;对象的id是唯一确定的#xff1b;将对象add入list中时#xff0c;放入list中的其实是对象的引用 #xff1b;而每次循环只是简单的set 对象的属性#xff0c;set新的属性值#xff0c;而add进list中的对象还是同一个对象id#…首先我们在new 一个对象的时候对象的id是唯一确定的将对象add入list中时放入list中的其实是对象的引用 而每次循环只是简单的set 对象的属性set新的属性值而add进list中的对象还是同一个对象id也就是同一个对象所以每次add之后list发现对象引用和之前元素一样就覆盖掉了之前add的对象。所以循环之后list中的对象是重复的对象。想要避免这个问题只要每次add时保证对象引用都是不同的即可即每循环一次重新new一个对象。另外如果List集合在循环内new对象只会添加最后一个元素。new的对象应该放在for循环内每循环一次重新new一个新对象补充知识两个list高效取出其中新增和相同的数两个list循环尽量避免双层循环以及contains的使用public static void test(){List oldList new ArrayList(){{add(1);add(2);add(4);add(5);}};List newList new ArrayList(){{add(3);add(4);add(5);add(6);}};Map map new HashMap();for (Integer i: oldList ) {map.put(i,0);}System.out.print(map);for (Integer j: newList ) {//value为1 更新的数据if (map.containsKey(j)){map.put(j,1);}else {//value为2 新增的数据map.put(j,2);}}System.out.println(map);for (Map.Entry entry: map.entrySet() ) {if(entry.getValue().equals(0)){System.out.println(旧的值entry.getKey());}if(entry.getValue().equals(1)){System.out.println(更新的值entry.getKey());}if(entry.getValue().equals(3)){System.out.println(新增的值entry.getKey());}}System.out.println(map);}public static void main(String[] arg){test();}以上这篇快速解决List集合add元素,添加多个对象出现重复的问题就是小编分享给大家的全部内容了希望能给大家一个参考也希望大家多多支持脚本之家。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84262.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!