
Java集合框架
文章平均质量分 71
ONROAD0612
不问前程何如,但愿落幕无悔
展开
-
Java集合框架--HashMap源码分析(二)(基于JDK1.8)
1 概述前面(参考Java集合框架--HashMap源码分析(一)(基于JDK1.7) )我们基于JDK1.7分析了HashMap的实现,我们知道了JDK1.7实现HashMap是基于链表和数组来实现的,而JDK1.8在数据结构上做了改了,添加进了红黑树的数据结构,红黑树的查询时间复杂度为O(log n),所以可以使用红黑树来降低当Hash冲突比较严重,链表长度过长而导致查询效率过低的情况。...原创 2017-08-18 15:00:17 · 425 阅读 · 0 评论 -
Java集合框架--TreeMap源码分析(基于JDK1.8)
1、概述当我们需要把插入的元素进行排序的时候,就需要使用的TreeMap。从名字我们可以看出TreeMap的实现肯定和树这种数据结构有关,当然TreeMap的实现是基于红黑树的。2、示例package com.liutao.collection;import java.util.Map;import java.util.TreeMap;/** * @Author:LIUT...原创 2018-05-06 17:27:03 · 342 阅读 · 0 评论 -
Java集合框架--LinkedList源码分析(基于JDK1.8)
1、概述通过前面的分析,我们知道了ArrayList是基于数组实现的,因此比较适合查询和修改比较多的操作。而LinkedList是基于双向链表实现的,因此比较适合添加和删除。2、LinkedList数据结构我们可以看见LinkedList是一个基于双向链表的数据结构(有指向前一个和指向后一个的引用),因此如果我们要遍历集合,可以进行双向遍历。3、源码分析3.1类的继承...原创 2017-08-17 15:48:20 · 460 阅读 · 0 评论 -
Java集合框架--概述
一、概述 Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表等。学习Java集合框架下大致可以分为如下五个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。Java集合类的整体框架如下:从上图我们可以看出,集合框架下主要有集合类Li...原创 2017-08-17 09:14:27 · 341 阅读 · 0 评论 -
Java集合框架--ArrayList源码分析(基于JDK1.8)
1概述ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长。ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的CopyOnWriteArrayList类。2源码分析2.1类的继承关系...原创 2017-08-17 10:53:45 · 325 阅读 · 0 评论 -
Java集合框架--HashMap源码分析(一)(基于JDK1.7)
1 概述Map是我们常使用得一种用于存放键值对的数据结构,现在我们来分析一下Map的实现类HashMap的具体实现,我们直到JDK1.8实现HashMap是使用数组+链表的数据结构,而JDK1.8为了提高查询效率改进了数据结构,加入了红黑树的数据结构来实现。现在在我们分析JDK1.8的HashMap之前先来看一下JDK1.7的实现。2 JDK1.7实现2.1 数据结构图我们首先来看...原创 2018-09-12 09:52:26 · 278 阅读 · 0 评论 -
Java集合框架--LinkedHashMap源码分析(基于JDK1.8)
1 概述前面我们对HashMap的源码进行了分析(详情可以参考:Java集合框架--HashMap源码分析(二)(基于JDK1.8),我们知道HashMap针对数据的插入是通过计算key的hash值和table大小来确定在数组及链表当中的位置的,所以HashMap没法保存插入数据的顺序。为了保存插入元素的顺序,就有了我们现在要提到的LinkedHashMap,从类的命名我们可以猜想,Linke...原创 2018-09-26 11:32:10 · 286 阅读 · 0 评论 -
Java集合框架--HashSet源码分析(基于JDK1.8)
1 概述前面的文章,我们分析了List和Map的一些实现类。现在我们开始分析Set的实现类。Set和List相同都是用于存放数据的集合,不同的是Set中的元素不允许重复(通过hashCode和equals函数来保证不重复性),如果数据相同就会进行覆盖。Set的实现是依赖于Map的实现,我们知道Map中的key也是不允许重复的。接下来我们就来看一下Set的具体实现类HashMap的实现吧...原创 2018-09-26 16:23:55 · 314 阅读 · 0 评论