zoukankan      html  css  js  c++  java
  • java集合类

    1.Iterable接口
    定义了迭代集合的迭代方法
    2. Collection接口
    定义了集合添加的通用方法
    3.List接口
    元素被添加到集合中以后,取出的时候是按照放入顺序。
    List可以重复。
    存在下标,可以直接依靠下标取值
    3.1 ArrayList类
    底层是一个Object数组,初始容量为10,当数组容量不够是自动扩容为以前的1.5倍,线程不安全
    3.2.Vector类(不常用)
    底层是一个Object数组
    初始容量为10,数组容量不够的时候自动扩容为原来的一倍,线程安全
    3.3 LinkedList
    底层是一个列表
    实现的思想可以归结为:每一次的插入或者移除,都是通过node()方法获取指定的Node节点,然后通过linkBefore或者linkLast这些方法来具体进行链表的操作
    4.Set接口
    插入无序
    元素不能重复
    底层均为Map集合实现
    4.1 TreeSet类
    实现了AbstractSet拥有了Set的属性和方法
    实现了NavigableSet,支持一系列导航方法,可以进行精确查找
    进行了排序。(在HashMap原理进行分析)
    4.2 HashSet类
    底层基于HashMap无序
    不可重复
    4.3 LinkedHashSet类
    底层基于LinkedHashMap实现,通过LinkedHashMap中的方法实现了顺序存值。
    5. Map类
    键值对的形式存放数据
    定义了通用的方法
    不可重复
    5.1Entry类
    Map类的内部类,用来获取所有的键值
    5.2HashMap类
    put的时候,会通过hash算法,计算一个index,这个index就是节点数组的下标,此时这个实体就被存储到这个数组中。但是由于这个hash算法不能保证任何一个key值计算出来的hash值均相同,所以采用链表的方式,挂载相同的index的实体。在1.8以后,当链表的节点数量大于或者等于8的时候且数组的容量大于64的时候,就会将链表转换为红黑树
    底层实现:数组+链表或者红黑树

  • 相关阅读:
    Vue.js双向绑定的实现原理和模板引擎实现原理(##########################################)
    JavaScript:最烂与最火
    JSP九大内置对象和四种属性范围解读
    codevs1009
    hdu 4869 Turn the pokers (2014多校联合第一场 I)
    OpenGL——点的绘制(使用OpenGL来绘制可旋转坐标系的螺旋线)
    nodejs 批处理运行 app.js
    jquery更新后怎样在一个站点中使用两个版本号的jQuery
    vs连接mysql出错解决方法
    uva 10627
  • 原文地址:https://www.cnblogs.com/clearlove007/p/13966915.html
Copyright © 2011-2022 走看看