`
DxnPratice
  • 浏览: 18822 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

集合框架中ArrayList和LinkedList的区别与联系

阅读更多
                            集合框架
1,Collection<E>在java.util包中,Collection是 层次结构中的根接口。
   Collection 表示一组对象,这些对象也称为 collection 的元素。
   一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。
   JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List,)实现;

2,列表 List,有序的 collection(也称为序列); 列表通常允许重复的元素。
   常用的List实现类: LinkedList Stack Vector
(1)ArrayListList是实现了基于动态数组的数据结构,是有序的,可重复的,长度可变的,有下标的,地址连续的的数组序列;
而 LinkedList是实现了基于链表的数据结构,是有序的,可重复的,长度可变的,有下标的,地址任意的,各个数据之间通过引用关联的链式序列;而且一个节点就是一个对象,包含了自己前一个节点和后一个节点的地址;


(2)ArrayListList添加元素的时候,需要判断存放元素的数组是否需要扩容;在指定位置添加元素或者移除指定元素的时候,需要移动比较多的元素,所以做插入删除操作时效率较低,但是由于是地址连续的一旦数据存储完了,查询操作效率比较高;且对于多线程的操作,不是线程同步的;

(3) LinkedList是通过移动链表指针添加和删除元素的,效率较高;但是查询操作效率较低;
 
(4)空间复杂度分析:LinkedList中每个对象都对应于链表中的一个元素,且该对象不仅存储自身的信息,还要存储相邻节点的地址信息,因此,在LinkedList结构中将有一个很大的空间开销;而ArrayList使用内置数组来存储信息,且默认数组初始容量为10,当数组需要增长时,新的容量增长率为50%, 这意味着当有大量的ArrayListList对象时,由于ArrayListList本身的工作方式,最终将会有很大的空间被浪费掉,所以ArrayListList初始化的时候可以指定大小,如果你知道大小,在创建的时候最好指定;

     ArrayList(int initialCapacity) , 构造一个具有指定初始容量的空列表。
     ArrayList() , 构造一个初始容量为 10 的空列表。
分享到:
评论

相关推荐

    Java中ArrayList和LinkedList区别

    在Java编程语言中,ArrayList和LinkedList都是集合框架中两种重要的列表实现,它们分别基于不同的数据结构,具有不同的特性和性能特点。以下是对这两个类的详细分析: 1. 数据结构: - ArrayList是基于动态数组的...

    ArrayList Vector LinkedList 区别与用法.

    ### ArrayList、Vector、LinkedList 的区别与用法详解 在Java编程中,选择合适的数据结构对于程序的性能至关重要。本文将深入探讨ArrayList、Vector和LinkedList三种集合类的特点与使用场景,帮助开发者更好地理解...

    ArrayList LinkedList Vector性能对比

    在Java编程语言中,集合框架是处理数据的重要组成部分。ArrayList、LinkedList和Vector是三种常见的动态数组实现,它们各自有特定的特性和使用场景。这里我们将深入探讨这三个类的性能对比,以及它们在不同操作下的...

    合理运用ArrayList与LinkedList

    在Java的集合框架中,ArrayList和LinkedList是两种常用的列表实现,它们都实现了List接口,但它们在内存管理和操作效率上存在显著差异。了解这些差异并根据具体应用场景选择合适的列表类型,能够有效提升J2EE应用...

    arraylist-linkedlist-test.zip

    ArrayList和LinkedList是Java集合框架中两种重要的动态数组实现,它们都是List接口的实现类,但它们在存储和操作数据方面有着显著的区别。本文件"arraylist-linkedlist-test.zip"主要探讨了在执行添加和删除元素操作...

    比较ArrayList、LinkedList、Vector1

    List接口是Java集合框架中的重要组成部分,它是一个有序的集合,允许重复元素,并且保持插入顺序。List接口的实现类主要有ArrayList、LinkedList和Vector。 2. **ArrayList** - **实现原理**:ArrayList基于动态...

    第8讲 对比Vector、ArrayList、LinkedList有何区别1

    在Java集合框架中,Vector、ArrayList和LinkedList都是List接口的实现,它们提供了有序集合的功能,允许根据位置进行元素的添加、删除和查找。然而,它们在设计和性能上有着显著的区别。 首先,Vector是Java早期...

    ArrayList-LinkedList-源码.rar

    在Java编程中,ArrayList和LinkedList是两种常见的动态数组,它们都是Java集合框架的一部分,提供了对元素存储和操作的功能。本篇将深入探讨ArrayList和LinkedList的内部实现机制,通过源码分析来揭示它们在性能、...

    学士后Java集合框架和泛型课后习题答案

    在Java中,集合框架主要包括接口(如List、Set、Queue)和实现这些接口的类(如ArrayList、HashSet、LinkedList等)。这个框架允许我们高效地处理各种数据结构,而无需从头开始编写代码。泛型则是Java 5引入的一项...

    对比Vector、ArrayList、LinkedList1

    在Java集合框架中,Vector、ArrayList和LinkedList是三种常见的List接口实现类,它们各自具有不同的特点和适用场景。下面我们将详细对比这三个类的区别。 1. **Vector** - **线程安全**:Vector是线程安全的,因为...

    java 集合之实现类ArrayList和LinkedList的方法

    Java 集合框架中,ArrayList 和 LinkedList 是两种常用的实现类,分别实现了 List 接口。下面我们将详细介绍这两种实现类的方法。 ArrayList ArrayList 是一个基于数组实现的 List 接口实现类,它的底层是使用数组...

    list集合案例增、删、改、查,ArrayList与LinkedList的区别,LinkedList堆栈/队列的开发

    在Java编程语言中,集合框架是处理对象数组的重要工具,其中`List`接口是最常用的集合类型之一。本篇文章将深入探讨`List`集合的各种操作,包括增、删、改、查,以及`ArrayList`和`LinkedList`两种实现`List`接口的...

    Map+List+ArrayList+LinkedList Java源码

    Java编程语言中的`Map`, `List`, `ArrayList` 和 `LinkedList` 是四个核心的数据结构,它们在实际开发中被广泛使用。了解它们的源码对于深入理解Java集合框架的内部工作原理至关重要,尤其是对初学者而言,这有助于...

    ArrayList和LinkedList区别及使用场景代码解析

    ArrayList和LinkedList都是Java集合框架中的重要成员,它们都是List接口的实现类,但它们在实现机制、性能和使用场景等方面存在着很大的差异。 ArrayList ArrayList是基于数组实现的,其构造函数为: ```java ...

    java基础--list(ArrayList、LinkedList、匿名类).docx

    在Java编程中,List接口是集合框架的重要组成部分,提供了有序存储元素的功能。ArrayList和LinkedList是List接口的两种主要实现,它们各有优缺点,适用于不同的场景。此外,匿名类的概念在Java中用于简化代码结构,...

    java中ArrayList 、LinkList区别.doc

    在Java编程语言中,ArrayList和LinkedList都是集合框架中两种重要的数据结构,它们分别基于不同的底层实现,具有不同的特性和性能特点。以下是对这两个类的详细分析: 1. **ArrayList 实现**: - ArrayList 实现了...

    【IT十八掌徐培成】Java基础第10天-03.List-集合框架-ArrayList.zip

    通过学习“【IT十八掌徐培成】Java基础第10天-03.List-集合框架-ArrayList”的课程,开发者可以更好地理解和掌握ArrayList的使用,从而在实际项目中更高效地管理数据集合。同时,理解ArrayList与其他集合类的区别和...

    集合框架学习笔记

    集合框架是Java编程语言中的核心组成部分,它提供了一套高效、灵活的数据结构和算法操作,使得程序员能够方便地存储和管理对象。这篇学习笔记将深入探讨Java集合框架的基础概念、主要类库以及常见应用场景。 首先,...

    ArrayList、ArrayDeque与LinkedList区别md,学习代码

    LinkedList是Java集合框架中的另一个类,它实现了List和Deque接口。LinkedList内部由一系列节点组成,每个节点包含一个元素和指向下一个节点的引用。LinkedList的主要优点在于插入和删除元素的效率高,因为它不需要...

    JDK1.6中Arraylist,Vector,LinkedList源码

    在Java编程语言中,ArrayList、Vector和LinkedList是三种常见的动态数组实现,它们都属于集合框架中的List接口。这里我们将深入探讨这三种数据结构的源码,理解它们的内部实现、性能特性和适用场景。 首先,...

Global site tag (gtag.js) - Google Analytics