Java中List<E>对象赋值问题(深浅拷贝)
2021-07-20 15:06
标签:current list() entry vat lse key except 相等 java 业务需求是:取2个集合中的交集对象并返回。如下代码,busMap中key值和stocks中Map中的key值相等的对象则返回继续操作,也就是说剔除stocks中的不存在于busMap中的对象,就是一个过滤操作。 实现代码 ① bug版 代码② 修正foreach中remove异常,bug版 代码③ 绕开浅拷贝,稳定版 代码④修正浅拷贝,稳定版 标签:current list() entry vat lse key except 相等 java 原文地址:http://blog.51cto.com/11939788/2162805
报错:
java.util.ConcurrentModificationException ; at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859) ; at java.util.ArrayList$Itr.next(ArrayList.java:831) ;
原因:
forEach实现是采用Iterator实现的,而remove操作不能在Iterator下操作,所以报错private static void appendStock(Map
bug:
执行该方法后,stocks并没有改变!!
原因:
对象浅拷贝导致private static void appendStock(Map
采用Iterator来删除元素,摒弃拷贝,从而不入浅拷贝的坑private static void appendStock(Map
文章标题:Java中List<E>对象赋值问题(深浅拷贝)
文章链接:http://soscw.com/index.php/essay/106652.html