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中使用高德地图实现搜索地址----
    ----vue中实现上传文件给后台----
    ----Vue 中mixin 的用法详解----
    ----移动端移动端调试神器vConsole----
    ----微信公众号之实现图片裁剪并上传----
    ----解决input输入框type=number时候去除增减按钮 禁用滚轮事件----
    ----微信公众号之解决二次分享问题----
    ----微信公众号之授权----
    「Linux学习」之clone表达式及grep 用法补充
    「Linux学习」之tar命令用法
  • 原文地址:https://www.cnblogs.com/clearlove007/p/13966915.html
Copyright © 2011-2022 走看看