• Java中的集合Collection


    集合的体系:

    Collection 接口 单列集合

    List 接口 可以重复 存取有序。有索引。

    	ArrayList (数组)
    	LinkedList(链表)
    	Vector(已经不用了)
    

    Set 接口 不可以重复 存取无序 无索引

    	HashSet
    	TreeSet
    

    Map 接口 双列集合。

      HashMap
      TreeMap
      Properties
    

    Collection

    先学习最底层的共性的东西。

    Collection常用方法:



    Collection的遍历:迭代器(遍历器)

    迭代器的设计理念:


    不同数据结构都有自己的迭代器,haxNext和next。这些迭代器都去继承Iterator接口(小写iterator是Iterator的子类),
    这样我们编程人员在创建迭代器的时候就不需要把每个数据类型的遍历方式都去记忆了。

    使用迭代器遍历的方式:


    例如:

    并发修改异常:

    当我们想往集合里添加数据的时候,由于是collection接口下我们只能使用迭代器Iterator,但是却报错。


    错误ConcurrentModificationException。
    查看源码发现原因如下:
    add方法会记录一个modCount,即实际修改集合次数。

    我们创造迭代器的时候,迭代器会把modCount(实际修改集合次数)的值赋给expectedmodCount(预期修改集合次数)

    在next方法里第一步执行检查checkForComodification()函数,会比较expectedmodCount(预期修改集合次数)和
    modCount(实际修改集合次数)的值是否相同

    很明显,我们在创造了迭代器后又使用add()方法改变了modCount(实际修改集合次数),所以next()方法出现了异常。

  • 相关阅读:
    linux 换源
    Jedis使用
    mysql 安装
    ORACLE 11g安装
    网易有道云笔记去除左下角广告
    No module named 'urllib2'
    python+Eclipse+pydev环境搭建
    python-正则表达式基础
    [转]SpringMVC Controller介绍及常用注解
    【Android自学日记】搭建Android开发环境
  • 原文地址:https://www.cnblogs.com/maomaodesu/p/11873940.html
Copyright © 2020-2023  润新知