• 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的时候,就会将链表转换为红黑树
    底层实现:数组+链表或者红黑树

  • 相关阅读:
    UV动画
    使用RampTexture实现BRDF效果
    使用RampTexture来控制diffuse shading
    Half Lambert
    Lamber算法 & SurfaceShader自定义光照
    What is _MainTex_ST ?
    C# Enum,Int,String的互相转换
    Plugins in Unity
    Mono在Full AOT模式下的限制
    雾化
  • 原文地址:https://www.cnblogs.com/clearlove007/p/13966915.html
Copyright © 2020-2023  润新知