吾爱乐享
个人学习网站

java之学习集合的并发修改及案例

结果示意图

A:案例演示

  • * 需求:我有一个集合,请问,我想判断里面有没有”world”这个元素,如果有,我就添加一个”javaee”元素,请写代码实现。

B:ConcurrentModificationException出现

  • * 迭代器遍历,集合修改集合

C:解决方案

  • * a:迭代器迭代元素,迭代器修改元素(ListIterator的特有功能add)
  • * b:集合遍历元素,集合修改元素

案例代码

  1. package com.fenxiangbe.collection;
  2.  
  3.  
  4. import java.util.ArrayList;
  5. import java.util.Collection;
  6. import java.util.Iterator;
  7. import java.util.List;
  8. import java.util.ListIterator;
  9.  
  10. import com.fenxiangbe.bean.Student;
  11.  
  12. public class Demo_Collection5 {
  13.  
  14. /**
  15. * A:案例演示
  16. * 需求:我有一个集合,请问,我想判断里面有没有”world”这个元素,如果有,我就添加一个”javaee”元素,请写代码实现。
  17. B:ConcurrentModificationException出现
  18. * 迭代器遍历,集合修改集合
  19. * C:解决方案
  20. * a:迭代器迭代元素,迭代器修改元素(ListIterator的特有功能add)
  21. * b:集合遍历元素,集合修改元素
  22. */
  23. @SuppressWarnings({ “unchecked”, “rawtypes” })
  24. public static void main(String[] args) {
  25. List c = new ArrayList();
  26. c.add(“a”);
  27. c.add(“b”);
  28. c.add(“world”);
  29. c.add(“c”);
  30. /*Iterator i = c.iterator();//创建迭代器
  31. while(i.hasNext()){//循环查找,是否存在元素
  32. String s = (String)i.next();//向下转型,取出每一个元素可以调用
  33. if(s.equals(“world”)){
  34. c.add(“javaee”);//遍历的同时增加元素,并发修改错误提示ConcurrentModificationException
  35. }
  36. }*/
  37. ListIterator lt = c.listIterator();
  38. while(lt.hasNext()){//循环查找是否存在元素
  39. String s = (String)lt.next();//向下转型
  40. if(“world”.equals(s)){
  41. lt.add(“javaee”);//遍历的同时增加元素
  42. }
  43. }
  44. System.out.println(c);
  45. }
  46.  
  47. }
赞(0) 打赏
未经允许不得转载:吾爱乐享 » java之学习集合的并发修改及案例

评论 抢沙发

评论前必须登录!

 

推荐免费资源共享,个人经验总结学习

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏