最近做的几个项目都是用Map来存储的数据 ,虽然用得挺顺手,但是对HashMap的底层原理却只知甚少,今天便来简单学习和整理一下。 数据结构中有数组和链表这两个结构来存储数据。 数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组 ...
集合分为两大类: Collection集合: 单个存储 Map集合: 按 lt 键,值 gt 对的形式存储, lt 员工姓名,工资 gt Collection类关系图 Collection常见方法 boolean add Ee 在当前集合中添加元素e boolean addAll Collection lt extends E gt c 把参数集合c中的所有元素都添加到当前集合中 void cle ...
2019-07-08 20:45 0 528 推荐指数:
最近做的几个项目都是用Map来存储的数据 ,虽然用得挺顺手,但是对HashMap的底层原理却只知甚少,今天便来简单学习和整理一下。 数据结构中有数组和链表这两个结构来存储数据。 数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组 ...
概述 首先在基于JDK1.7进行分析,对于JDK1.8所做的改动也会在文章中逐步进行说明。 HashMap基于Map接口实现,元素以键值对的方式存储,并且允许使用null建和null值,因为key不允许重复,因此只能有一个键为null,另外HashMap不能保证放入元素的顺序,它是无序 ...
...
集合框架: Java中的集合框架大类可分为Collection和Map;两者的区别: 1、Collection是单列集合;Map是双列集合 2、Collection中只有Set系列要求元素唯一;Map中键需要唯一,值可以重复 3、Collection的数据结构是针对元素的;Map的数据结构 ...
前面,我们已经学习了ArrayList,并了解了fail-fast机制。这一章我们接着学习List的实现类——LinkedList。和学习ArrayList一样,接下来呢,我们先对LinkedList有个整体认识,然后再学习它的源码;最后再通过实例来学会使用LinkedList。内容包括:第1部分 ...
Collection: ArrayList:1:底层实现是数组,默认长度是10.2:add(),判断是否数组越界,是数组扩容为原来的两倍。3:remove(),copy数组,size-1,释放空虚的空间。 HashSet:底层实现是一个HashMap,把值存在map的key上,value存 ...
Note:文章的内容基于JDK1.7进行分析。1.8做的改动文章末尾进行讲解。 一、先来熟悉一下我们常用的HashMap: 1、概述 HashMap基于Map接口实现,元素以键值对的方式存储,并且允许使用null 建和null 值, 因为key不允许重复,因此只能有一个键为null ...
Note:文章的内容基于JDK1.7进行分析。1.8做的改动文章末尾进行讲解。 一、先来熟悉一下我们常用的HashMap: 1、概述 HashMap基于Map接口实现,元素以键值对的方式存储,并且允许使用null 建和null 值, 因为key不允许重复,因此只能有一个 ...