ArrayList和LinkedList学习】的更多相关文章

摘要 ArrayList和LinkedList是对List接口的不同数据结构的实现.它们都是线程不安全的,线程不安全往往出现在数组的扩容.数据添加的时候. 一.ArrayList和LinkedList是什么? ArrayList:ArrayList是List接口的可变数组的实现. LinkedList:LinkedList是List接口的(双向)链表实现. 二.两个List的数据结构 1.ArrayList的数据结构 ArrayList的类继承图如下: (1-1:ArrayList的类继承图)…
ArrayList.LinkedList.HashMap是Java开发中非常常见的数据类型.它们的区别也非常明显的,在Java中也非常具有代表性.在Java中,常见的数据结构是:数组.链表,其他数据结构基本就是这两者的组合. 复习一下数组.链表的特征. 数组:在内存中连续的地址块,查找按照下标来寻址,查找快速.但是插入元素和删除元素慢,需要移动元素. 链表:内存中逻辑上可以连接到一起的一组节点.每个节点除了存储本身,还存储了下一个元素的地址.查找元素需要依次找找各个元素,查找慢,插入和删除元素只…
前面已经学习完了List部分的源码,主要是ArrayList和LinkedList两部分内容,这一节主要总结下List部分的内容. List概括 先来回顾一下List在Collection中的的框架图: 从图中我们可以看出: 1. List是一个接口,它继承与Collection接口,代表有序的队列. 2. AbstractList是一个抽象类,它继承与AbstractCollection.AbstractList实现了List接口中除了size().get(int location)之外的方法…
一.ArrayList和Vector的区别 ArrayList与Vector主要从以下方面来说. 1.同步性: Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的. 2.操作: 由于Vector支持多线程操作,所以在性能上就比不上ArrayList了. 3.数据增长: ArrayList和Vector都有一个初始的容量大小,当存储进去它们里面的元素个数超出容量的时候,就需要增加ArrayList和Vector的存储空间,每次增加存储空间的时候不是只增加一…
在Java的List类型集合中,ArrayList和LinkedList大概是最常用到的2个了,细看了一下它们的实现,发现区别还是很大的,这里简单的列一下个人比较关心的区别. 类声明 ArrayList public class ArrayList<E>extends AbstractList<E>implements List<E>,RandomAccess, Cloneable, java.io.Serializable LinkedList public clas…
说起集合,我们会潜意识里想到另外一个与之相近的名词——数组,OK!两者确实有相似之处,但也正是这点才是我们应该注意的地方,下面简单列出了两者的区别(具体功能的不同学习这篇文章后就会明白了): 数组 长度固定 既可以存储基本数据类型,也能存储引用数据类型 一个数组中的元素类型必一致 集合 长度可变 只能存储引用数据类型 一个集合中的元素类型可以是任意的引用类型 一.集合概述 Collection<E> 父接口 List<E> 子接口 ArrayList<E>类 Vecto…
在前两篇博客,学习了ArrayList和LinkedList的源码,地址在这: Java集合(五)--LinkedList源码解读 Java集合(四)--基于JDK1.8的ArrayList源码解读 这篇文章,对比一下ArrayList和LinkedList和Vector,主要是前面两个,因为Vector很少使用,如果考虑并发安全,也会使用 CopyOnWriteArrayList ArrayList和LinkedList的对比:插入.修改.删除.遍历 顺序插入add(Object): 1.Ar…
Java集合框架概述 Java集合工具包位于Java.util包下.包括了非常多经常使用的数据结构,如数组.链表.栈.队列.集合.哈希表等.学习Java集合框架下大致能够分为例如以下五个部分:List列表.Set集合.Map映射.迭代器(Iterator.Enumeration).工具类(Arrays.Collections). Java集合类的总体框架例如以下: 从上图中能够看出,集合类主要分为两大类:Collection和Map. Collection是List.Set等集合高度抽象出来的接…
一.线性表 1,什么是线性表 线性表就是零个或多个数据元素的有限序列.线性表中的每个元素只能有零个或一个前驱元素,零个或一个后继元素.在较复杂的线性表中,一个数据元素可以由若干个数据项组成.比如牵手排队的小朋友,可以有学号.姓名.性别.出生日期等数据项. 2,线性表的抽象数据类型 线性表的抽象数据类型定义如下. ADT List Data 线性表的数据对象集合为{a1,a2,...,a3},每个元素的类型均为DataType Operation InitList (L) : 初始化操作,建立一个…
Java基础之 集合体系结构详细笔记(Collection.List.ArrayList.LinkedList.Vector) 集合是JavaSE的重要组成部分,其与数据结构的知识密切相联,集合体系就是对数据结构的封装 数组与集合的比较 数组:长度固定,可以存储基本数据类型,也能存储对象 集合:长度可变,只能存储对象类型(由于有包装类的存在,集合可以存储任何类型) 集合的体系结构 集合也叫容器,用于存储对象 我们根据不同的需求和不同的数据结构来对集合做了不同的抽象 Collection接口-公共…