Java 基础 —— HashMap之数组和链表

Java 基础 —— HashMap之数组和链表

HashMap优点

  • 快速索引

首先来认识数组和单链表,知道它们的优缺点,再介绍HashMap


数据结构 —— 数组

Java 基础 —— HashMap之数组和链表


优缺点

优点

  • 连续的内存,通过下标可以快速寻址;
    缺点
  • 插入节点困难(在上述途中,270是后来插入的,需要按顺序插入到268与289之间,所以将289和320后移,才可以将270插入)

数据结构 —— 单链表

定义

Java 基础 —— HashMap之数组和链表

  • 包含Head和Tail,分别指向单链表头部和尾部
  • 如图,头部指向100,尾部指向289

Java 基础 —— HashMap之数组和链表
如上图,在289后面插入300,在268与289之间插入270,只需要让Next指向我想插入的值之后即可,不过它依然存在缺点:如果要去查找单链表中某一个值是否存在在单链表之中,需要遍历单链表,从Head(头)节点遍历到Tail(尾)节点,查询较困难,查询时间复杂度是O(n),但是插入较为方便;


优缺点

  • 优点
    插入和删除数据方便;
  • 缺点
    查询效率低,时间复杂度是O(n);