2019独角兽企业重金招聘Python工程师标准>>>
<p>    今天遇到了一个小bug,在对ArrayList操作时出现了java.util.ConcurrentModificationException异常。原来是arrary在遍历时,是不能删除其中的对象的。
for(MediaFeedData item : Items){ if(mBlackList.containsKey(Long.toString(item.getUser().getId()))){ Items.remove(item); } }
<style type="text/css"> .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }</style>
<p>  后改成下面代码即可</p>
<pre class="csharpcode"> ArraryList<MediaFeedData > templist = <span class="kwrd">new</span> ArraryList<MediaFeedData >(); <span class="kwrd">for</span>(MediaFeedData item : Items){ <span class="kwrd">if</span>(mBlackList.containsKey(Long.toString(item.getUser().getId()))){ templist.add(item); } } Items.removeall(templist);</pre>
<style type="text/css"> .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }</style>