JDK集合框架--ArrayList】的更多相关文章

ArrayList,从类名就可以看出来,这是由数组实现的List,即内部是用数组保存元素的有序集合.先看看主要的成员变量,比较简单: public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable { /** * 默认的初始数组大小 */ private static final int DEFAULT_…
JDK中的集合框架分为两大类:Collection和Map.Collection以一组Object的形式保存元素,Map以Key-Value对的形式保存元素. 上图列出的类并不完整,只列举了平时比较常用的类. 基本接口和类型 Collection集合 该接口是Set和List的父接口,主要提供了下面的方法: boolean add(E e) 往集合中添加新元素.添加成功,返回true,否则返回false Iterator<E> iterator() 返回Iterator对象,这样就可以遍历集合…
// ClassCastException 报错,注意,千万要搞清楚类型 * Vector的特有功能: * 1:添加功能 * public void addElement(Object obj) -- 被add()替代 * 2:获取功能 * public Object elementAt(int index) -- 被 get()替代 * public Enumeration elements() -- 被Iterator iterator()替代 * boolean hasMoreElemen…
一.JDK中ArrayList是如何实现的 1.先看下ArrayList从上而下的层次图: 说明: 从图中可以看出,ArrayList只是最下层的实现类,集合的规则和扩展都是AbstractList.List.Collection等上层的接口所设定的,而ArrayList实现或继承了上层的规则,然后重新或扩展来处理集合中的数据. 2.看看接口:Iterable<E>中都定义了那些规则? JDK1.8中的源码: package java.lang; import java.util.Iterat…
Java集合框架学习笔记 1. Java集合框架中各接口或子类的继承以及实现关系图: 2. 数组和集合类的区别整理: 数组: 1. 长度是固定的 2. 既可以存放基本数据类型又可以存放引用数据类型 3. 存放进数组的必须是相同类型的数据 VS 集合类: 1. 长度是可变的 2. 只能存放对象的引用 3. 存放进集合的可以是不同的数据类型 3. 集合类常用API源码分析 在之后的大数据学习中,灵活运用各种各样的数据结构可以说是一项基本技能了,因此,了解各种数据结构的底层源码将有助于用户更好地使用各…
1.类继承体系 在集合框架的类继承体系中,最顶层有两个接口Collection.Map: Collection 表示一组纯数据 Map 表示一组key-value对 Collection的类继承体系: Map的类继承体系: 2.集合框架 2.1 ArrayList 可变数组的实现,高效随机访问RandomAccess ,但插入和删除元素时需要复制数组,开销较大:默认容量10,扩容为原来的1.5倍(oldCapacity + (oldCapacity >> 1)): fail-fast : mo…
一.集合Collection 1. 集合介绍 变量:表示的内存中的一个空间,只能保存确定类型的单个数据 数组:表示的是内存中的多个连续的空间,这些空间中可以存储多个同类型的数据. 后期继续学习面向对象技术,我们在程序中开始创建对象,使用对象.当在程序中创建的多少越来越多的时候,我们就需要将这些对象也存储起来. 需要存储对象:肯定是需要容器. 变量:可以,要求这个变量必须是引用变量,但只能存储单个对象 数组:可以,但是它要求存储的对象个数是固定的.    字符串缓冲区:不可以,因为它中的数据最后都…
   接下来的几篇博客总结一下对jdk中常用集合类知识,本篇博客先整体性地介绍一下集合及其主要的api: 从整体上来说,集合分两大类collection和map: 首先来看看Collection: collection主要分为set(无序)和list(有序)两大类,这里分别以HashSet和ArrayList为例,分析: 以上是使用idea生成的类图: collection继承了接口Iterable,用于获取迭代器(Iterator接口的实现类实例),Iterator的实现类都是集合类中的内部类…
boolean add(E e) 将指定的元素添加到此列表的尾部. void add(int index, E element) 将指定的元素插入此列表中的指定位置. boolean addAll(Collection<? extends E> c) 按照指定 collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的 尾部. boolean addAll(int index, Collection<? extends E> c) 从指定…
ArrayList中存储的元素的内存空间是连续的, LinkedList内存空间不是连续的 集合对象不能被序列化到硬盘中 http://blog.csdn.net/eson_15/article/details/51145788…