Java集合类
鄙人薛某
欢迎大家关注我的公众号:鄙人薛某,我将用通俗易懂的语言为你讲解后端的相关技术点,更新速度优于CSDN
展开
-
当面试官问我ArrayList和LinkedList哪个更占空间时,我这么答让他眼前一亮
前言 今天介绍一下Java的两个集合类,ArrayList和LinkedList,这两个集合的知识点几乎可以说面试必问的。 对于这两个集合类,相信大家都不陌生,ArrayList可以说是日常开发中用的最多的工具类了,也是面试中几乎必问的,LinkedList可能用的少点,但大多数的面试也会有所涉及,尤其是关于这两者的比较可以说是家常便饭,所以,无论从使用上还是在面试的准备上,对于这两个类的知识点我们都要有足够的了解。 ArrayList ArrayList是List接口的一个实现类,底层是基于数组实现的存储原创 2020-08-04 09:57:51 · 2655 阅读 · 5 评论 -
阿里P7岗位面试,面试官问我:为什么HashMap底层树化标准的元素个数是8
前言 先声明一下,本文有点标题党了,像我这样的菜鸡何德何能去面试阿里的P7岗啊,不过,这确实是阿里p7级岗位的面试题,当然,参加面试的人不是我,而是我部门的一个大佬。他把自己的面试经验分享给了我,也让我间接体会下阿里级别的面试难度,这样算起来,我也勉强算是经历面试过阿里P7的岗位的人吧,顿时感觉信心暴涨。 常见的面试题 对于HashMap,我们再熟悉不过了,日常开发最常用的Java集合类就是它了,而且面试的时候对于HashMap知识点基本是必问的,就拿我之前的面试经历来看,问的最多的无非是这么几个: 1、原创 2020-07-06 09:49:22 · 1356 阅读 · 1 评论 -
Java集合类:Vector
引言 之前的文章我们学习了一个集合类 ArrayList,今天讲它的一个兄弟 Vector。 为什么说是它兄弟呢?因为从容器的构造来说,Vector 简直就是 ArrayList 的翻版,也是基于数组的数据结构,不同的是,Vector的每个方法都加了 synchronized 修饰符,是线程安全的。 类声明 用idea打开 Vector 的源码,不难发现,它的类声明跟 ArrayList 一模一样...原创 2018-10-30 10:54:27 · 666 阅读 · 0 评论 -
Java集合类:LinkedList
文章目录前言初识LinkedList源码解析添加元素删除元素更改元素查询元素内部类LinkedList 和 ArrayList 的对比 前言 上篇文里讲解了ArrayList ,它是基于List 接口来实现的,今天讲解Java集合类中另一个跟List相关的集合类,叫做LinkedList 。 初识LinkedList LinkedList 是基于双向链表实现的,也就是说,链表中任何一个存储单元都可...原创 2018-10-30 10:51:58 · 364 阅读 · 0 评论 -
Java集合类:ArrayList
文章目录前言源码解析基本成员变量添加元素查询元素修改元素删除元素为什么用 "transient" 修饰数组变量总结 前言 今天学习一个Java集合类使用最多的类 ArrayList , ArrayList 继承了 AbstractList,并实现了List 和 RandomAccess 等接口, public class ArrayList<E> extends AbstractLis...原创 2018-10-24 20:51:06 · 494 阅读 · 0 评论 -
Java集合类:"随机访问" 的RandomAccess接口
引出RandomAccess接口 如果我们用Java做开发的话,最常用的容器之一就是List集合了,而List集合中用的较多的就是ArrayList 和 LinkedList 两个类,这两者也常被用来做比较。因为最近在学习Java的集合类源码,对于这两个类自然是不能放过,于是乎,翻看他们的源码,我发现,ArrayList实现了一个叫做 RandomAccess 的接口,而 LinkedList 是...原创 2018-10-24 20:45:38 · 2564 阅读 · 1 评论 -
Java集合类:AbstractList
今天学习Java集合类中的一个抽象类,AbstractList。 初识AbstractList AbstractList 是一个抽象类,实现了List 接口,是隶属于Java集合框架中的 根接口 Collection 的分支,由其衍生的很多子类因为拥有强大的容器性能而被广泛应用,例如我们最为熟悉的ArrayList,这是它的类继承结构图: 特殊方法 AbstractList 虽然是抽象类,但其内...原创 2018-10-24 20:44:09 · 5335 阅读 · 2 评论 -
Java集合类:LinkedHashMap
前言 今天继续学习关于Map家族的另一个类 LinkedHashMap 。先说明一下,LinkedHashMap 是继承于 HashMap 的,所以本文只针对 LinkedHashMap 的特性学习,跟HashMap 相关的一些特性就不做进一步的解析了,大家有疑惑的可以看之前的博文 深入解析 LinkedHashMap的基本结构 首先,看一下LinkedHashMap类的定义结构: public ...原创 2018-10-24 20:41:21 · 274 阅读 · 0 评论 -
Java集合类:HashMap (基于JDK1.8)
文章目录前言HashMap的数据结构深入源码两个参数成员变量四个构造方法插入数据的方法:put()哈希函数:hash()动态扩容:resize()节点树化、红黑树的拆分节点树化红黑树拆分总结心得 前言 今天我们来学习Java中较为常用的集合类 HashMap。 另外说明一下,本文的 HashMap 源码是基于Jdk1.8版本的,如果没有特别说明的话,之后的集合类源码解析都是1.8的版本。 Hash...原创 2018-10-24 20:35:09 · 7668 阅读 · 2 评论 -
Java集合类:AbstractMap
文章目录引言源码解析抽象函数entrySet()两个集合视图操作方法两个子类感谢参考: 引言 今天学习一个Java集合的一个抽象类 AbstractMap ,AbstractMap 是Map接口的 实现类之一,也是HashMap、TreeMap、ConcurrentHashMap 等的父类,它提供了Map 接口中方法的基本实现(关于Map接口有疑惑的同学可参考 Java根接口:Collectio...原创 2018-10-17 17:32:33 · 1045 阅读 · 0 评论 -
Java根接口:Collection 和 Map
前言 在前文中我们了解了几种常见的数据结构,这些数据结构有着各自的应用场景,并且被广泛的应用于编程语言中,其中,Java中的集合类就是基于这些数据结构为基础。 Java的集合类是一些非常实用的工具类,主要用于存储和装载数据 (包括对象),因此,Java的集合类也被成为容器。在Java中,所有的集合类都位于java.util包下,这些集合类主要是基于两个根接口派生而来,它们就是 Collect...原创 2018-09-29 09:43:58 · 887 阅读 · 1 评论