java collection库
来源:互联网 发布:拼音软件下载排行 编辑:程序博客网 时间:2024/06/05 13:33
对于java程序员来说,除了会语法外,最基本的就是对JDK的学习了,JDK组成如下:
jdk = jre + bin(dev util)
jre = jvm + lib(rt.jar)
我们平常用的java类库就时rt.jar里的runtime类库了。
下面我们来学习下最常用的java.util里的类:
Map
--------HashMap
先来学习下大家最常用到hashmap,在jdk6中,就是个链表的数组。
Node[] table 每个Node里都有个Node next, 就是个linkList。
如果不设置,table的初始大小为16, 当数据过多时会按2倍扩容。
每个entry会按key的hash值模table的size放入列表中。
复杂度从1到n.
jdk8中,如果一个链表的长度超过8,会把node换成TreeNode,红黑树,
复杂度从1到 log n.
--------LinkedHashMap
基于HashMap, 多了3个字段:
Node head;
Node tail;
boolean accessOrder;
Node多了befor和after俩个Node;
所以可以按insertOrder或accessOrder,把所有的node都link起来,遍历时将从head开始,访问每个after。
--------TreeMap
对于 TreeMap 而言,由于它底层采用一棵“红黑树”来保存集合中的 Entry,复杂度是 log n。
但 TreeMap比 HashMap在于,TreeMap 中所有元素总是根据指定排序规则保持有序状态。
红黑树是一种平衡二叉树的具体实现,在put方法中添加了fixAfterInsertion(e)
, remove方法中添加 fixAfterDeletion(e) 来保持树的平衡。
具体来说,在树左边发生节点多时,进行一次左旋转,改变根节点。
list比较简单,基本上就是array, linkedList。
- java collection库
- 【java】【java Collection】Collection
- java Collection
- java collection
- Java Collection
- Java Collection
- Java Collection
- java Collection
- java Collection
- Java Collection
- Java Collection
- Java Collection
- Java Collection
- Java Collection
- Java - Collection
- java Collection
- Java Collection
- Java Collection
- mysql的root用户没有grant权限
- unity 安卓热更新代码的最新方法: 通过Mono加载新的重新编译的dll
- Tensorflow之nn 简单神经网络学习
- 硬币求和
- Google Dapper-大规模分布式系统的基础跟踪设施
- java collection库
- 15 个 Android 通用流行框架大全
- Unity Editor Scripting 2
- JavaEE Web服务端必备的核心基础(图)
- java concurrent库
- 将数据存储到文件中
- 苹果手机制作铃声 (简易版)
- cmake3.6编译opencv3.1时出现变量设置错误
- ubuntu常用指令总结