一、集合类简介 数组是很常用的一种的数据结构,我们用它可以满足很多的功能,但是,有时我们会遇到如下这样的问题: 1、我们需要该容器的长度是不确定的。 2、我们需要它能自动排序。 3、我们需要存储以键值对方式存在的数据。 如果遇到上述的情况,数组是很难满足需求的,接下来本章将介绍另一种与数组类似的数据 ...
分类:
编程语言 时间:
2016-05-20 09:46:58
阅读次数:
250
List概览 List,正如它的名字,表明其是有顺序的。当讨论List的时候,最好拿它跟Set作比较,Set中的元素是无序且唯一;下面是一张类层次结构图,从这张图中,我们可以大致了解java集合类的整体架构; ArrayList vs LinkedList vs Vector 从上面的类层次结构图中 ...
分类:
编程语言 时间:
2016-05-18 16:01:07
阅读次数:
161
Java Core系列之ConcurrentHashMap实现(JDK 1.7) ConcurrentHashMap类似Hashtable,是HashMap更高效的线程安全版本的实现。不同于Hashtable简单的将所有方法标记为synchronized,它将内部数组分成多个Segment,每个Se ...
分类:
编程语言 时间:
2016-05-14 09:00:53
阅读次数:
240
一、前言 前面已经分析了HashMap与LinkedHashMap,现在我们来分析不太常用的IdentityHashMap,从它的名字上也可以看出来用于表示唯一的HashMap,仔细分析了其源码,发现其数据结构与HashMap使用的数据结构完全不同,因为在继承关系上面,他们两没有任何关系。下面,进入 ...
分类:
编程语言 时间:
2016-05-13 18:49:27
阅读次数:
333
一、HashMap概述二、HashMap的数据结构三、HashMap源码分析 1、关键属性 2、构造方法 3、存储数据 4、调整大小 5、数据读取 6、HashMap的性能参数 一、HashMap概述 HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null ...
分类:
编程语言 时间:
2016-05-13 09:58:00
阅读次数:
243
不同于list还有set的单个元素的组织形式,map要求的保存的是一个组对象,也即使键值对。对jdk中的map源码是比较重要的,因为通过分析jdk中set的源码可以发现其实就是map的一层包装,实际上底层都是在调用map的具体实现的操作。 ...
分类:
编程语言 时间:
2016-05-13 08:31:14
阅读次数:
118
Java Map存在于java.util包中,是一个集合类,常见的集合类还有List。Map 集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。
本文利用一张类图简述一个Map相关的组织结构。类图如下:
类图说明:
Map是一个顶级接口,从类图中可以看出主要包括了几个方法(部分)。SortedMap和ConcurrentMap接口继承自Map接口,从名字就能看出...
分类:
编程语言 时间:
2016-05-12 19:18:31
阅读次数:
190
Collection是一个顶层的接口,在集合类中还有Map也属于顶层接口(参考Java集合类之Map探究),本文通过一张类图描述List和Set的基本结构。
类图解析:
Collection是一个顶层的接口,定义了一系列方法,List和Set是继承自Collection的接口。
每个Collection都可以产生一个Iterator(参考Java iterator与ite...
分类:
编程语言 时间:
2016-05-12 19:05:42
阅读次数:
212
首先我们来看JDK源码中Java.util.Vector的代码,剔除所有的方法和静态变量, Java.lang.Vector的核心代码如下: public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess ...
分类:
编程语言 时间:
2016-05-11 13:35:31
阅读次数:
305