数组和链表是数据结构中最基本的部分。 数组 在java中,数组定义为一种基本类型,其可以通过下标获取到对应位置的数据。那么这种结构的数据,在内存中是怎么存放的呢? 数组在内存中是一段连续的存储单元,每个数据依次放在每个单元中。 分析这种结构,我们可以得出以下几个结论: 创建一个数组,必须声明其长度, ...
分类:
编程语言 时间:
2018-05-30 21:05:51
阅读次数:
211
ArrayList简介 ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。 ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一 ...
分类:
编程语言 时间:
2018-05-24 13:56:34
阅读次数:
178
转载自 http://www.cnblogs.com/zhangyinhua/p/7698642.html#_label0 一,关于HashMap API定义 二,HashMap 的属性 初始容量:哈希表中桶的数量 加载因子:哈希表在其容量自动增加之前可以达到多满的一种尺度 当哈希表中条目数超出了当 ...
分类:
编程语言 时间:
2018-05-10 15:43:20
阅读次数:
203
一、HashMap简介 1.1、HashMap概述 HashMap是基于哈希表的Map接口实现的,它存储的是内容是键值对<key,value>映射。此类不保证映射的顺序,假定哈希函数将元素适当的分布在各桶之间,可为基本操作(get和put)提供稳定的性能。 在API中给出了相应的定义: //1、哈希 ...
分类:
编程语言 时间:
2017-10-20 13:22:40
阅读次数:
160
前言 在前面的学习集合中只是介绍了集合的相关用法,我们想要更深入的去了解集合那就要通过我们去分析它的源码来了解它。希望对集合有一个更进一步的理解! 既然是看源码那我们要怎么看一个类的源码呢?这里我推荐的方法是: 1)看继承结构 看这个类的层次结构,处于一个什么位置,可以在自己心里有个大概的了解。 2 ...
分类:
编程语言 时间:
2017-10-18 16:43:55
阅读次数:
306
学习路线: http://www.cnblogs.com/skywang12345/ 总结 1 总体框架 2 Collection架构 3 ArrayList详细介绍(源码解析)和使用示例 4 fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法) 5 Linked ...
分类:
编程语言 时间:
2017-08-31 17:56:46
阅读次数:
174
Java集合工具包位于package java.util下。包含了一些常用的数据结构,如数组、链表(单/双向)、树、栈、队列、哈希表等。 Java集合框架大致可分为五部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collecti ...
分类:
编程语言 时间:
2017-06-30 22:30:59
阅读次数:
205
一、简介 LinkedList是一个常用的集合类,用于顺序存储元素。LinkedList经常和ArrayList一起被提及。大部分人应该都知道ArrayList内部采用数组保存元素,适合用于随机访问比较多的场景,而随机插入、删除等操作因为要移动元素而比较慢。LinkedList内部采用链表的形式存储 ...
分类:
编程语言 时间:
2017-06-20 13:39:57
阅读次数:
274
前言 本文不打算延续前几篇的风格(对所有的源码加入注释),因为要理解透TreeMap的所有源码,对博主来说,确实需要耗费大量的时间和经历,目前看来不大可能有这么多时间的投入,故这里意在通过于阅读源码对TreeMap有个宏观上的把握,并就其中一些方法的实现做比较深入的分析。 红黑树简介 TreeMap ...
分类:
编程语言 时间:
2017-05-29 09:55:55
阅读次数:
255
转载请注明出处:http://blog.csdn.net/ns_code/article/details/37867985 前言:有网友建议分析下LinkedHashMap的源码,于是花了一晚上时间研究了下,分享出此文(这个系列的最后一篇博文了),希望大家相互学习。LinkedHashMap的源码理 ...
分类:
编程语言 时间:
2017-05-29 09:55:23
阅读次数:
206