java.util
命运的左岸
日拱一卒,功不唐捐
展开
-
RandomAccess
RandomAccessjava version “1.8.0_131”一、总结 RandomAccess 接口是一个标记接口,接口中无方法定义 作用:标识当前的集合的存储方式;List 有两种实现方式,顺序表(数组,ArrayList,优于查询)、链表(LinkedList,优于增删);ArrayList 实现 RandomAccess 接口;在遍历大集合时,通常对 ArrayList 使用 fo原创 2017-12-03 17:05:48 · 263 阅读 · 0 评论 -
Hashtable
Hashtable 概述 版本:1.70 对比: 内容 HashMap Hashtable 默认容量 16 11 负载因子 0.75 0.75 null值 允许key/value为空 不允许key/value为空 扩容 length*2 length*2+1 安全 线程不安全 线程安全 extends AbstractMap Dictionary ...原创 2019-07-18 22:42:21 · 102 阅读 · 0 评论 -
Comparator
Comparator public static void main(String[] args) { List<Integer> integerList = Arrays.asList(5, 2, 6, 5, 8, 8, 4); Comparator<Integer> comparator = new Comparator&原创 2018-12-20 16:51:02 · 1851 阅读 · 0 评论 -
HashMap
HashMap 一、总结 Hash 冲突解决方案 链地址法:数组+链表的数据结构,元素的hash值与数组的大小取余,相同余数的元素放入同一个数组下标位置的链表中,后添加的元素在链表头部,如:HashMap 开放定制法:数组数据结构,发生元素碰撞,判断碰撞位置的下一个位置是否为空,若不为空,继续向下判断,直至为空放入该元素,如:ThreadLocal 中 ThreadLocalMap 的实...原创 2017-03-11 17:48:23 · 97 阅读 · 0 评论 -
Vector
[align=center][size=large]Vector[/size][/align] 一、总结 1.线程安全 二、类 1.源码 [code="java"] public class Vector extends AbstractList implements List, RandomAccess, Cloneable, java.io....原创 2017-03-11 14:57:11 · 77 阅读 · 0 评论 -
Arrays
[align=center][size=large]Arrays[/size][/align] 一、总结 1.基于 jdk 1.8 二、asList [code="java"] /** * Returns a fixed-size list backed by the specified array. (Changes to * the ...原创 2017-10-27 22:54:23 · 71 阅读 · 0 评论 -
Collections
[align=center][size=large]Collections[/size][/align] 一、总结 1.基于 JDK 1.8 二、shuffle() 集合中元素重新排序 [code="java"] public static void shuffle(List list) { if (r == null) { ...原创 2017-10-27 22:40:50 · 139 阅读 · 0 评论 -
LinkedList
[align=center][size=large]LinkedList[/size][/align] 一、总结 1.基于 jdk 1.8 源码分析 2. 二、类声明 [code="java"] /** * Linked list implementation of the List interface. Implements all * optional...原创 2017-10-09 21:18:44 · 97 阅读 · 0 评论 -
Objects
[align=center][size=large]Objects[/size][/align] 一、总结 二、equals Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用equals [code="java"] public static boolean equals(Object obj, Object obj1) { ...原创 2017-10-08 12:20:09 · 139 阅读 · 0 评论 -
RandomAccess
[align=center][size=large]RandomAccess[/size][/align] 总结: 1.基于 JDK 1.8 源码分析 2.作用 起到判断的作用,即当前集合是否支持随机访问 顺序表(数组形式)还是单链表存储,以便使用更合适的遍历方式 RandomAccess(如ArrayList)还是Sequence List (如LinkedList)...原创 2017-10-08 11:24:41 · 163 阅读 · 0 评论 -
ArrayList
[align=center][size=large]ArrayList[/size][/align] 一、总结 1.基于 JDK 1.8 源码分析 2.默认初始化长度 10 3.线程不安全,modCount ,对集合的实际操作次数与预期操作次数进行比较,若不同,快速失败,抛出异常;集合通过Iterator 遍历时使用 4.扩容,数组原长度*3/2 + 1 5....原创 2017-10-08 10:14:40 · 72 阅读 · 0 评论 -
HashSet
HashSet 一、概述 版本:jdk 1.8.0_131 HashSet 的底层实现通过 HashMap 完成,添加的内容作为 HashMap的 KeySet ,value 为固定值 线程不安全 Key 允许 null 值 clone 是浅拷贝 二、类 public class HashSet extends AbstractSet i...原创 2017-09-24 15:04:57 · 112 阅读 · 0 评论 -
HashTable
[align=center][size=large]Hashtable[/size][/align] 一、对比HashMap 1. [table] |项目|HashMap|Hashtable| |默认容量|16|11| |负载因子|0.75|0.75| |null值|允许key/value为空|不允许key/value为空(put操作时报空指针异常)| |扩容|length...原创 2017-09-23 20:54:41 · 96 阅读 · 0 评论 -
Random
Random public class Test { public static void main(String[] args) { Random random = new Random(); int i = random.nextInt(4); // [0,4) 左闭右开 System.out.println(i); ...原创 2018-10-27 17:28:27 · 252 阅读 · 0 评论 -
ArrayList
ArrayListjava version “1.8.0_131”一、总结二、源码分析1.toArray()将集合转化为数组;将数组转为集合Arrays.asList();该方法是ArrayList –>List –> Collection(toArray)继承 /** * Returns an array containing all of the elements in this原创 2017-12-04 22:13:34 · 277 阅读 · 0 评论 -
Arrays
Arraysjava version “1.8.0_131”一、总结 数据工具类,私有构造方法,提供静态类方法 Arrays.asList() 与 Collections.toArray() 实现 List 与 Array 之间的互相转化 二、源码分析1. asList()将数组转化为集合// Arrays.asList /** * Returns a fixed-s原创 2017-12-02 21:15:35 · 813 阅读 · 0 评论 -
AbstractCollection
AbstractCollection 概述 版本:jdk 1.7 方法 // 取交集 // A & B = A.retainAll(B) // 注意: // 1.此处没有对A进行拷贝,会修改A的集合内容 // 2.返回值不是两个集合存在交集的意思,而是是否进行了修改 // 3.判断是否存在交集,需要对调用 retainAll 后的A判空,非空,即存在交集 pu...原创 2019-07-24 21:52:48 · 142 阅读 · 0 评论