深入浅出Java容器
深入了解Java容器类,通过数据分析容器的使用场景
疯狂的bug
沉下心来,好好学习
展开
-
Java容器(一)—— 「容器的族谱」
基本概念在Java当中,如果有一系列类专门用来存放其它类的对象,这个类就叫做容器,或者就叫做集合,集合就是将若干性质相同或相近的类对象组合在一起而形成的一个整体。 容器的内容是我们工作中必须要深入学习和掌握的,因此也是我们面试必问、必考的问题,重要性毋庸置疑。容器的前身应该是数组,数组也是用于存放对象的,但是数组存在结构单一、功能简单以及容量固定的问题,因此容器就诞生了。 容器与原创 2018-01-24 18:01:04 · 322 阅读 · 0 评论 -
Java容器—— 「通过数组实现自己的ArrayMap」
前言在Java编程语言中,最基本的结构就是两种,一种是数组,一种是模拟指针(引用),所有的数据结构都可以用这两个基本结构构造。 本文主题就是通过数组的方式实现Map的key-value存储(以下称为ArrayMap),然后在后续章节通过ArrayMap与Java自带的HashMap进行对比,来直观的了解Hash算法相对比数组存储性能的优势。实现思路ArrayMap的主要功能在Ma原创 2018-01-25 17:51:03 · 1506 阅读 · 0 评论 -
Java容器—— 「实现自己的HashMap」
一、前言上一篇文章实现了自己的ArrayMap,但是对于Key-Value使用单纯数组进行存储,那么性能实在是惨不忍睹。此种情况下哈希表的数据结构是比较合适的解决方案。 哈希表就是一种以 键-值(key-indexed) 存储数据的结构,我们只要输入待查找的值即key,即可查找到其对应的值。 哈希的思路很简单,如果所有的键都是整数,那么就可以使用一个简单的无序数组来实现:将键作为原创 2018-01-27 17:00:06 · 398 阅读 · 1 评论 -
Java容器(二)——「ArrayList、LinkedList性能测试与分析」
测试目标集合中最常用的就是List,用于存储可重复的数据集。 为了了解List的几个实现类的性能区别以及使用场景,进行简单的性能测试对比。 我们常规对于ArrayList、LinkedList的认知是: 1. 数据查询的效率(Get的效率) ArrayList:使用数组,获取数据通过数组下标进行快速定位,性能为O(1),数据顺序、随机获取的速度快。 LinkedList:使用链表进行原创 2018-01-19 23:14:58 · 4657 阅读 · 10 评论