首先看一下LinkedList和ArrayList的继承关系。
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable
public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Queue<E>, Cloneable, Serializable
两者都实现List接口,前者实现RandomAccess接口,后者实现Queue接口。
ArrayList 动态数组结构
ArrayList其实是包装了一个数组 Object[],当实例化一个ArrayList时,一个数组也被实例化,当向ArrayList中添加对象是,数组的大小也相应的改变。
优缺点:
快速随即访问 你可以随即访问每个元素而不用考虑性能问题,通过调用get(i)方法来访问下标为i的数组元素。
向其中添加对象速度慢 当你创建数组是并不能确定其容量,所以当改变这个数组时就必须在内存中做很多事情。
操作其中对象的速度慢 当你要想数组中任意两个元素中间添加对象时,数组需要移动所有后面的对象。
LinkedList 链表结构
LinkedList是通过节点直接彼此连接来实现的。每一个节点都包含前一个节点的引用,后一个节点的引用和节点存储的值。当一个新节点插入时,只需要修改其中保持先后关系的节点的引用即可,当删除记录时也一样。
优缺点:
操作其中对象的速度快 只需要改变连接,新的节点可以在内存中的任何地方
不能随即访问 虽然存在get()方法,但是这个方法是通过遍历接点来定位的所以速度慢。
分享到:
相关推荐
【Java基础——List接口详解(ArrayList、LinkedList、匿名类)】 在Java编程中,List接口是集合框架的重要组成部分,提供了有序存储元素的功能。ArrayList和LinkedList是List接口的两种主要实现,它们各有优缺点,...
数据集合部分会涵盖Java集合框架,包括List、Set、Queue、Map等各种接口和实现类,以及泛型、迭代器、比较器等相关概念。这部分内容有助于读者在实际开发中高效地管理和操作数据。 网络编程章节则会讲解Java的...
这份"java基础---PPT讲稿.zip"压缩包包含了对Java基础知识的深入讲解,旨在帮助学习者掌握Java的核心概念,为更高级的学习阶段打下坚实的基础。 在PPT中,我们可能会涵盖以下几个关键知识点: 1. **Java简介**:...
Java基础是编程世界中至关重要的一环,尤其对于初学者来说,掌握好Java基础知识将为后续的深入学习和开发工作奠定坚实的基础。"java基础--微学院"这个资源显然是为了帮助初学者系统地学习Java编程而设计的。让我们来...
总的来说,掌握Java集合框架的使用是成为一名合格Java开发人员的基础。了解各个集合类的特点和适用场景,以及它们背后的实现原理,将有助于编写出更高效、更健壮的代码。在实际编程中,我们需要根据具体需求选择合适...
### Java基础 #### 1. Java概述 - **定义**:Java是一种面向对象的编程语言,由Sun Microsystems公司于1995年推出。 - **特点**: - 面向对象:支持封装、继承、多态等特性。 - 平台无关性:Java程序可以在任何...
这个"java基础教程----精华版"显然是一份精心整理的资料,旨在帮助初学者快速掌握Java编程的基础知识。下面将详细介绍Java语言的核心概念和关键知识点。 1. **Java语法基础**: - **变量**:在Java中,变量是存储...
JAVA 基础是编程学习的重要一环,尤其对于初学者而言,掌握好JAVA的基础知识是成为...总的来说,JAVA基础涵盖了从编程语言基础到高级特性的广泛知识,学习者需要深入理解和实践,才能在JAVA开发领域打下坚实的基础。
计算机后端-Java-Java核心基础-第25章 集合02 03. 复习:List接口.avi
计算机后端-Java-Java核心基础-第24章 集合01 18. List遍历及方法总结.avi
计算机后端-Java-Java核心基础-第24章 集合01 19. List的一个面试小题.avi
计算机后端-Java-Java核心基础-第24章 集合01 13. List接口常用实现类的对比.avi
计算机后端-Java-Java核心基础-第24章 集合01 17. List接口中的常用方法测试.avi
本资料“Java 基础-尚硅谷学习笔记(含面试题)2023年”旨在提供全面的Java基础知识,并结合最新的面试趋势,帮助学习者巩固基础并为面试做好准备。 1. **Java语法基础** - **变量与数据类型**:Java支持基本数据...
这份"学习java基础-好用的PPT"是为初学者准备的一份详尽的学习资料,涵盖了Java语言的核心概念和关键特性。 1. **Java简介**:Java是由Sun Microsystems公司(现已被Oracle收购)于1995年推出的,它的设计目标是...
10. **集合框架**:Java集合框架包括List(如ArrayList和LinkedList)、Set(如HashSet和TreeSet)和Map(如HashMap和TreeMap)接口及其实现类。理解它们的特点和使用方法,以及迭代器的使用。 11. **多线程**:...
在Java编程领域,"Java-...总的来说,"Java-Mail-list.zip_JAVA list通讯录"项目涵盖了Java基础、集合框架、面向对象编程、异常处理和设计模式等多个重要知识点。通过这个项目,开发者可以巩固和提高在这些领域的技能。
9. **集合框架**:Java集合框架包括接口(如List、Set和Map)和实现这些接口的类(如ArrayList、HashSet、HashMap等)。理解它们的特性和用途,可以有效地组织和操作数据。 10. **多线程**:Java内置了对多线程的...
Java集合体系是Java编程中非常核心的部分,涵盖了用于存储和操作数据的各种数据结构。在Java中,集合主要分为三大接口:List、...在面试中,深入理解集合的底层原理和操作性能,能展现出扎实的Java基础和问题解决能力。