ArrayList与LinkList

1、ArrayList

  1)继承结构

  2)ArrayList是数组存储结果,初始容量为0,添加第一个元素后容器为10,后面每次超过容量时,容量递增50%,每次扩容都需要产生新的数组,再把老的数据复制过去。

  3)优缺点

    优点:存取速度快

    缺点:事先必须知道数组的长度、插入删除元素很慢、空间通常是有限制的、需要大块连续的内存块插入

2、ListedList

  1)类图

  2)LinkedList是一个双链表数据结构,一个引用指向前一个数据,另外一个指向后面的数据,增删数据只需要改变前后引用的指向即可。

  3)优缺点:

  优点:插入和删除很快

  缺点:查询速度很慢

3、AarryList与LinkedList异同点

  相同点:

  1)、二者都集成自AbstractList

  2)、都实现了java.io.Serializable、Cloneable、java.util.List、java.util.Collection接口

  3)、二者都不是线程安全的。

  不同点

  1)ArrayList核心是数组,LinkedList核心是链表。

  2)虽然他们有相同的结果,但实现方式完全不同。

  3)ArrayList有容量限制,LinkedList没有。

  4)LinkedList额外实现了java.util.Deque接口,该接口继承java.util.Queue接口(队列),所以LinkedList具有队列属性。

  5)ArrayList额外实现了java.util.RandomAccess接口。该接口详细说明见:ArrayList中的RandomAccess接口

原文地址:https://www.cnblogs.com/zhi-leaf/p/10611506.html

时间: 2024-08-12 07:52:50

ArrayList与LinkList的相关文章

Android——ArrayList 、LinkList、List 区别 & 迭代器iterator的使用 & HashMap、Hashtable、LinkedHashMap、TreeMap

ArrayList .LinkList.List 区别 & 迭代器iterator的使用 & HashMap.Hashtable.LinkedHashMap.TreeMap 一.几个List类型 1.大学数据结构中ArrayList是实现了基于动态数组的数据结构,LinkList基于链表的数据结构. 2.对于随机访问get和set,ArrayList优于LinkList,因为LinkedList要移动指针. 3.对于新增和删除操作add和remove,LinkList比较占优势,因为Arr

string和stringbuffer的区别 集合的作用 ArrayList vector linklist hashmap hashtable collection和collections

string给定的长度 不可变,当多个字符串联合的时候先转化为stringbuffer然后联合,速度慢,stringbuffer可以改变字符串的长度,当多个字符串连接的时候采用stringbuffer效率比较高. 集合的作用 对数据进行传送,对数据进行增删改查,还可以用来存放不同的对象. import java.util.Vector;import java.util.List;import java.util.Iterator;import java.util.Enumeration; /**

【Java】ArrayList 和 LinkList

1.什么是ArrayList    ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和IList接口 灵活的设置数组的大小 2.什么是LinkList 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer).由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性

Java集合之ArrayList与LinkList

注:示例基于JDK1.8版本 参考资料:Java知音公众号 本文超长,也是搬运的干货,希望小伙伴耐心看完. Collection集合体系 List.Set.Map是集合体系的三个接口. 其中List和Set继承了Collection接口. List有序且元素可以重复,默认大小为10:ArrayList.LinkedList和Vector是三个主要的实现类. Set元素不可以重复,HashSet和TreeSet是两个主要的实现类. Map也属于集合系统,但和Collection接口不同.Map是k

java中ArrayList 、LinkList区别

转自:http://blog.csdn.net/wuchuanpingstone/article/details/6678653 个人建议:以下这篇文章,是从例子说明的方式,解释ArrayList.LinkedList,但是最好的方式还是看源代码.其实ArrayList就是一个动态数组,LinkedList是一个链表.  1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构.     2.对于随机访问get和set,ArrayList优于LinkedLis

arraylist和linkList区别

For LinkedList<E> get(int index) is O(n) add(E element) is O(1) add(int index, E element) is O(n) remove(int index) is O(n) Iterator.remove() is O(1) <--- main benefit of LinkedList<E> ListIterator.add(E element) is O(1) <--- main benefi

ArrayList和LinkList

List是一个接口,ArrayList和LinkedList是两个实现类,他们实现的方式不一样,其实LinkedList才是真正的链表(如果不清楚什么是链表,需要了解一下相关数据结构的知识,这不是一两句话能说清楚的),而ArrayList是用数组实现的,它不是真正的链表,在初始化的时候它先对数组设置一个初始容量,当数组空间不够的时候,它会重新构建一个容量更大的数组,然后把先前的元素拷贝进去. ArrayList和LinkedList本质上的区别就是数组和列表这两种数据结构的区别.课参阅相关数据结

ArrayList 和 LinkList 的区别

ArrayList 的相关知识 public class ArrayList<E> extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, java.io.Serializable 由上面源码可知,Arraylist继承自AbstractList 实现了List ,Cloneable,Serializable,RandomAccess接口.其中Cloneable是克隆接口,Serializa

ArrayList和LinkList的区别

底层实现区别 ArrayList 底层实现就是数组,且ArrayList实现了RandomAccess,表示它能快速随机访问存储的元素,通过下标 index 访问,只是我们需要用 get() 方法的形式, 数组支持随机访问, 查询速度快, 增删元素慢: LinkedList 底层实现是链表, LinkedList 没有实现 RandomAccess 接口,链表支持顺序访问, 查询速度慢, 增删元素快 ArrayList和LinkedList遍历的区别 List 实现RandomAccess使用的