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接口
ArrayList与LinkList的更多相关文章
- ArrayList和LinkList区别
ArrayList和LinkList区别 前者是数组的数据结构,后者是链表的数据结构 前者应用于排序和查找,后者应用于插入删除
- Java:List,ArrayList和LinkList的区别
1.大学数据结构中ArrayList是实现了基于动态数组的数据结构,LinkList基于链表的数据结构 2.对于随机访问get和set,ArrayList优于LinkList,因为LinkedList ...
- Java集合(2)一 ArrayList 与 LinkList
目录 Java集合(1)一 集合框架 Java集合(2)一 ArrayList 与 LinkList Java集合(3)一 红黑树.TreeMap与TreeSet(上) Java集合(4)一 红黑树. ...
- Android——ArrayList 、LinkList、List 区别 & 迭代器iterator的使用 & HashMap、Hashtable、LinkedHashMap、TreeMap
ArrayList .LinkList.List 区别 & 迭代器iterator的使用 & HashMap.Hashtable.LinkedHashMap.TreeMap 一.几个 ...
- ArrayList与LinkList对比
本文简要总结一下java中ArrayList与LinkedList的区别,这在面试中也是常常会问到的一个知识点. 先来看一下ArrayList和LinkedList的关系是怎样的: 从继承体系可以看到 ...
- Java集合之ArrayList与LinkList
注:示例基于JDK1.8版本 参考资料:Java知音公众号 本文超长,也是搬运的干货,希望小伙伴耐心看完. Collection集合体系 List.Set.Map是集合体系的三个接口. 其中List和 ...
- ArrayList,LinkList,HashMap
ArrayList底层实现数组,这是ArrayList get()方法的源码,底层是数组 根据下标返回在数组中对应的位置 ,查询快,插入慢 // Positional Access Operation ...
- 工作之余第二篇(看源码自己实现ArrayList和LinkList)
先看源码: 首先看构造器,构造器有三种,一种直接给定初始长度的,如下代码 public ArrayList(int initialCapacity) { if (initialCapacity > ...
- java中ArrayList 、LinkList区别
转自:http://blog.csdn.net/wuchuanpingstone/article/details/6678653 个人建议:以下这篇文章,是从例子说明的方式,解释ArrayList.L ...
- ArrayList、linklist、list的区别
List是一个接口,ArrayList和LinkedList是两个实现类,他们实现的方式不一样,其实LinkedList才是真正的链表(如果不清楚什么是链表,需要了解一下相关数据结构的知识,这不是一两 ...
随机推荐
- springboot集成themeleaf报Namespace 'th' is not bound
<!DOCTYPE html><!--解决th报错 --><html lang="en" xmlns:th="http://www.w3.o ...
- Docker 构建 RabbitMQ 集群
刚开始,关于RabbitMQ集群的搭建,我找到了这篇文章:Docker 安装 RabbitMQ 集群 从而找到了第三方的RabbitMQ集群容器 rabbitmq-server 但是这个容器只有3.6 ...
- python基础部分----文件、copy、内存指针
0.来源:https://www.cnblogs.com/jin-xin/articles/9439483.html 1.is VS id() VS == 2.小数据池.代码块缓存机制 3.赋值符号= ...
- angular2 ----字符串、对象、base64 之间的转换
1. JSON对象转化为字符串 let obj = { "name":Ayinger; "sex":"女"; } let str = JSO ...
- KVO的使用二:常用方法及小技巧
(文章及代码接上一篇) options详解: KVO的注册方法中有一个options枚举,用来确定观察者的接收消息方法接收的信息,那么具体有什么关联呢?下面通过一段代码来验证是如何关联的.依次选择op ...
- psutil的几个例子
python进行系统相关操作时都有点力不从心,尤其是windows下,比如获取进程的cpu.内存等等,可以通过以下方法可以达到这种要求: 1.安装pywin32.psutil这种第三方库,里面提供了很 ...
- Java 键盘输入数字(空格隔开) 将数字存入数组
Scanner sc = new Scanner(System.in); String inputString = sc.nextLine(); String stringArray[] = inpu ...
- 2018年-2019年第二学期第七周C#学习个人总结
在本周我又学习了,第五章面向对象高级中的5.5异常和5.6命名空间和程序集.在5.5异常中我知道了异常层次结构:所有的异常类都继承自Exception类.由于发生了异常程序立即终止无法再继续向下执行. ...
- freopen()函数在ACM中的使用
#ifndef ONLINE_JUDGE freopen("in.txt","r",stdin); #endif https://blog.csdn.net/c ...
- CentOS 使用firewalld打开防火墙与端口
CentOS 使用firewalld打开防火墙与端口 LinuxCentOS 基本使用 启动 : systemctl start firewalld 关闭 : systemctl stop firew ...