美文网首页
java集合数据结构汇总

java集合数据结构汇总

作者: hdychi | 来源:发表于2018-07-20 11:45 被阅读0次

一、Set

HashSet其实是用了HashMap的数据结构。HashMap的数据结构是一个数组+链表的形式。

关于HashMap数据结构的具体实现、以及扩容,参考博客:https://www.jianshu.com/p/8b372f3a195d/

TreeSet用了TreeMap的数据结构,TreeMap的本质是一个红黑树,TreeMap类里存着根节点:

private transient Entry<K,V> root;

二、List

ArrayList内部是数组:

transient Object[] elementData;
public boolean add(E e) {
        ensureCapacityInternal(size + 1);  // Increments modCount!!
        elementData[size++] = e;
        return true;
 }

LinkedList内部是链表:

 transient Node<E> first;

    /**
     * Pointer to last node.
     * Invariant: (first == null && last == null) ||
     *            (last.next == null && last.item != null)
     */
transient Node<E> last;
public boolean add(E e) {
        linkLast(e);
        return true;
}
 void linkLast(E e) {
        final Node<E> l = last;
        final Node<E> newNode = new Node<>(l, e, null);
        last = newNode;
        if (l == null)
            first = newNode;
        else
            l.next = newNode;
        size++;
        modCount++;
}

linkLast在链表结尾处添加节点,改变尾节点的next指针指向新节点。

三、Map

HashMap的数据结构是一个数组+链表的形式。

TreeMap的本质是一个红黑树。

LinkedHashMap的数据结构是HashMap+链表,既用HashMap的数据结构存储,又给每个节点加上before和after维护插入顺序。

相关文章

  • 容器类框架分析(6)(java)HashSet & Li

    移步数据结构--容器汇总(java & Android)内容: Set 集合概述 HashSet 源码简单分析 L...

  • Java(Android)数据结构汇总 -- 总纲

    目录:Java(Android)数据结构汇总(一)-- List(上)Java(Android)数据结构汇总(一)...

  • 复习

    数据结构 数据结构 集合常见数据结构:集合,链表,队列,数组,栈,映射java中:List列表,Set集合,Map...

  • Java基础之集合类

    Java基础之集合类 集合类简单介绍 Java集合是Java提供的工具包,包含了常用的数据结构:集合、链表、队列、...

  • Java集合框架面试题

    标签(空格分隔): Java集合框架 面试题汇总 1. 什么是Java集合框架?请列举出集合(Collection...

  • Java集合干货系列-集合总体大纲

    前言 Java集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工...

  • Vector

    Java集合 Java集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Jav...

  • 集合概述

    一:集合的UML类图 二:集合工具的分析 (Java集合是java提供的工具) 常用的数据结构: 集合、链表、队列...

  • Java基础面试总结

    【面试汇总】Java面试题-1Java面试题-2 【集合】Java集合及concurrent并发包总结(转)Jav...

  • java集合数据结构汇总

    一、Set HashSet其实是用了HashMap的数据结构。HashMap的数据结构是一个数组+链表的形式。 关...

网友评论

      本文标题:java集合数据结构汇总

      本文链接:https://www.haomeiwen.com/subject/yvvfmftx.html