zoukankan      html  css  js  c++  java
  • Java之Collection(集合)

    集合&数组的区别

    1)数组的长度是固定的。集合的长度是可变的。
    2)数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致 

    集合分类

    Collection和Map,Collection 表示一组对象,Map表示一组映射关系或键值对。 

    集合Collection<E>

    All Superinterfaces: 
    Iterable 
    
    All Known Subinterfaces: 
    Deque , List , Queue , Set , SortedSet
    
    所有已知实现类: 
    ArrayList,    HashSet,    LinkedList,    Vector,  TreeSet 

    增强for循环

    for(元素的数据类型  变量 : Collection集合or数组){ 
      	//写操作代码
    } 

    List集合(子接口)

    All Superinterfaces: 
    Collection , Iterable 
    所有已知实现类: 
    ArrayList, LinkedList, Stack, Vector 
    

    List的实现类之ArrayList

    • ArrayLIst特点
    ArrayList`集合数据存储的结构是数组结构。元素增删慢,查找快,由于日常开发中使用最多的功能为查询数据
    
    • ArrayList与Vector的区别
    它们的底层物理结构都是数组,我们称为动态数组。
    
    - ArrayList是新版的动态数组,线程不安全,效率高,Vector是旧版的动态数组,线程安全,效率低。
    - 动态数组的扩容机制不同,ArrayList扩容为原来的1.5倍,Vector扩容增加为原来的2倍。
    - 数组的初始化容量,如果在构建ArrayList与Vector的集合对象时,没有显式指定初始化容量,那么Vector的内部数组的初始容量默认为10,而ArrayList在JDK1.6及之前的版本也是10,而JDK1.7之后的版本ArrayList初始化为长度为0的空数组,之后在添加第一个元素时,再创建长度为10的数组。
    - Vector因为版本古老,支持Enumeration 迭代器。但是该迭代器不支持快速失败。而Iterator和ListIterator迭代器支持快速失败。如果在迭代器创建后的任意时间从结构上修改了向量(通过迭代器自身的 remove 或 add 方法之外的任何其他方式),则迭代器将抛出 ConcurrentModificationException。因此,面对并发的修改,迭代器很快就完全失败,而不是冒着在将来不确定的时间任意发生不确定行为的风险。
    

    List的实现类之LinkedList

    • LinkedList的特点
    LinkedList集合数据存储的结构是链表结构。方便元素添加、删除的集合
    

      

      

    本文为原创文章,转载请标明出处
  • 相关阅读:
    【linux基础】usleep和sleep的区别
    【算法基础】opencv函数approxPolyDP和Ramer-Douglas-Peucker Algorithm
    【算法基础】散点轮廓算法-Alpha Shapes
    【图像处理算法基础】图像分割经典算法-泛洪算法FloodFill
    .net core 部署在Linux系统上运行的环境搭建
    Linux部署Net Core网站,三种自定义绑定端口号的方法(UseUrls,UseKestrel,手动指定)
    .NetCore部署Linux环境搭建
    .Net Core 项目发布到Linux
    .Net Core 项目发布到Linux
    Linux桌面操作系统排行榜
  • 原文地址:https://www.cnblogs.com/harden13/p/14790139.html
Copyright © 2011-2022 走看看