java-集合
文章平均质量分 93
智公博客
互联网.金融.电商
展开
-
java 集合框架-CopyOnWriteArrayList
CopyOnWriteArrayList是java.util.concurrent并发包下的集合类,与集合功能与ArrayList相似,主要区别为这是线程安全类 如类名一样,在对底层数组写(修改)时,会复制一份数组进行实际操作,操作完成后修改引用为新数组;而在读的时候是直接读取数组接下来我们来看具体的源码: /** The lock protecting all mutators原创 2017-01-18 18:20:43 · 363 阅读 · 0 评论 -
java 集合框架-LinkedHashMap
一、概述1、继承扩展HashMap,实现Map接口,基于双链表实现有序,支持插入有序和访问顺序2、允许NULL元素,基本操作(add、contrains、remove)与HashMap一样有稳定性能(hash分布均匀情况下)3、由于需要维护链表,性能较HashMap差,而迭代可能不一定,LinkedHashMap的迭代所需时间与 大小 成比例,HashMap迭代所需时间与 容量 成比例...原创 2018-09-04 14:33:49 · 340 阅读 · 0 评论 -
java-集合框架HashSet
一、概述1.HashSet 继承AbstractSet抽象类、实现Set接口,内部通过Hash table(HashMap) 实现2.元素无序,可以有一个NULL元素3.一般操作(add、remove、contains、size)不考虑元素的Hash函数时间,是常量时间复杂度4.迭代器时间相当于 元素的size + 背后HashMap的容量(capacity),所以如果需要经常迭代...原创 2018-09-04 14:31:44 · 201 阅读 · 0 评论 -
java 集合框架-HashMap
一、概述HashMap应该是我们最常会使用到的Map容器了吧,这里先简单罗列写它的特点: 1.实现所有Map接口方法,允许null值key、null值value 2.不保证元素的顺序,包括先后添加的顺序,特别是随着容量增加顺序不能保证 3.实现等价于HashTable,区别是HashMap是非线程安全的 4.假设hash方法可以正确的分散,基本的get、put操作的时间复杂度为常量时间(N)原创 2017-06-15 18:52:56 · 402 阅读 · 0 评论 -
java 集合框架 Map-AbstractMap
Map接口键值对映射(key-value),对于一个map,每个key都是唯一的,不重复,而且每个key对应一个value,value可以重复需要注意可变对象作为key,key对象是否相等,是使用equal方法判断的,如果可变对象改变的状态导致equal方法结果改变,那么映射的错误是未知、不确定的;因此,映射最好使用不可变对象为key,如基本类型、String等;映射是否有序,Map接口没有规原创 2017-06-15 18:52:00 · 467 阅读 · 0 评论 -
java 集合框架-概述
Java 集合框架在java.util 包下,包括常用的容器类数据结构、工具类等,本章主要为对下图的简单概括,后续章节通过源码说明每个容器类的详细实现细节:集合框架中两个顶级的集合接口:Collection、Map,定义了最基本的一些操作方法;其中Collection接口是继承可迭代接口 Iterable 的,所有的子类都是可以使用 Iterator 迭代器方式原创 2016-11-17 20:32:56 · 460 阅读 · 0 评论 -
java 集合框架-AbstractList
AbstractList 作为具体List型具体类,实现AbstractCollection抽象类、继承List接口,实现了部分方法 - indexOf - lastIndexOf - subList - addAll - iterator - listIterator - equals - hashCode下面源码分析一些较复杂的方法实现原创 2016-11-17 20:35:29 · 515 阅读 · 0 评论 -
java 集合框架-AbstractCollection
AbstractCollection 作为顶级接口Collection的抽象实现子类,实现了一下集合基本方法: - isEmpty - contains - toArray - add - remove - containsAll - addAll - clear - toString下面我们一一看下实现的源码原创 2016-11-17 20:34:09 · 469 阅读 · 0 评论 -
java 集合框架-ArrayList
在上一篇中我们描述了AbstractList的一些特性,包括迭代器的快速失败机制,这篇我们继续分享List下最常用的ArrayList以及非常类似的Vector,ArrayList具体实现类主要有以下特性: - 支持动态大小,集合的大小可以自动扩展 - 不是线程同步安全,所有方法都不同步 - 实现支持迭代器快速失败原创 2017-01-12 16:53:29 · 435 阅读 · 0 评论 -
java 集合框架-TreeMap
一、背景1、SortMap接口扩展Map接口,定义按照key有序的映射集合以key的自然顺序(实现Comparable的对象)排序或者指定的Comparator排序有序指的是迭代的有序,如entrySet、keySet、values 等方法返回的元素集合有序SortMap新增定义了一些基于有序的方法://返回一个左闭右开区间的子视图,修改子视图等同修改该mapSortedMap&...原创 2018-09-19 19:06:41 · 212 阅读 · 0 评论