游客您好
第三方账号登陆
  • 点击联系客服

    在线时间:8:00-16:00

    客服电话

    020-85534346

    电子邮件

    81058337@qq.com
  • 码云社APP

    随时掌握码云社动态

  • 扫描二维码

    关注砺锋微信公众号

推荐阅读
ghhntrtq 颇具潜力
未知星球 | 未知职业
  • 关注0
  • 粉丝2
  • 帖子18

JAVASE班 郭裕霖-Day15学习记录

[复制链接]
ghhntrtq 发表于 2020-7-31 19:27:18 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

一.遍历的四种方法
  //第一种:普通使用,二次取值(性能差)    System.out.println("\n通过Map.keySet遍历key和value:");      for(String key:map.keySet())    {     System.out.println("Key: "+key+" Value: "+map.get(key));    }        //第二种(性能比第一种好,一次取值)    System.out.println("\n通过Map.entrySet使用iterator遍历key和value: ");      Iterator map1it=map.entrySet().iterator();    while(map1it.hasNext())    {     Map.Entry<String, String> entry=(Entry<String, String>) map1it.next();     System.out.println("Key: "+entry.getKey()+" Value: "+entry.getValue());    }        //第三种:推荐,尤其是容量大时      System.out.println("\n通过Map.entrySet遍历key和value");      for(Map.Entry<String, String> entry: map.entrySet())    {     System.out.println("Key: "+ entry.getKey()+ " Value: "+entry.getValue());    }        //第四种      System.out.println("\n通过Map.values()遍历所有的value,但不能遍历key");      for(String v:map.values())    {     System.out.println("The value is "+v);    }二.迭代器
[backcolor=rgba(255, 255, 255, 0.5)]  (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
[backcolor=rgba(255, 255, 255, 0.5)]  (2) 使用next()获得序列中的下一个元素。
[backcolor=rgba(255, 255, 255, 0.5)]  (3) 使用hasNext()检查序列中是否还有元素。
[backcolor=rgba(255, 255, 255, 0.5)]  (4) 使用remove()将迭代器新返回的元素删除。
[backcolor=rgba(255, 255, 255, 0.5)]三.迭代器的底层实现
  在集合内部维护一个字段modCount用于记录集合被修改的次数,每当集合内部结构发生变化(add,remove,set)时,modCount+1。
  在迭代器内部也维护一个字段expectedModCount,同样记录当前集合修改的次数,初始化为集合的modCount值。当我们在调用Iterator进行遍历操作时,如果有其他线程修改list会出现modCount!=expectedModCount的情况,就会报并发修改异常java.util.ConcurrentModificationException。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
码云社-用代码改变世界!
回复 关闭延时

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

CODESEEDING(码云社)一家致力于程序员成长、以内容为核心、以提问为引导的多元化成长社区。我们在线上为技术爱好者提供了一个优质的交流氛围环境,在线下同样和众多高校联合开办了技术沙龙品牌。
020-85534346
关注我们
  • 访问移动H5版
  • 官方微信公众号

码云社 - CODESEEDING 2.0© 2018-2019 码云社. TOOBUG ( 粤ICP备16114193号-3 )