ArrayList类与Vector类与LinkedList类(的异同)


前言

把ArrayList和Vector写一起是因为两个类之间有联系。
在这里插入图片描述


一、ArrayList

1.1 ArrayList概述

java.util.ArrayList 集合数据存储的结构是数组结构。元素增删慢,查找快,由于日常开发中使用最多的功能为查询数据、遍历数据,所以 ArrayList 是最常⽤的集合。

a. 底层数据结构:顺序结构
b. 底层实现:数组
c.特点:
  	①.按照顺序排列,每个元素都带有标号
	②.除了有标号是连续的,内存中的物理空间也是连续的
d.优缺点:
  	优点: 查询速度快(因为有连续的下标,可以根据下标进行查询)
	缺点: 
	  ①. 插入/删除速度慢(插入/删除都是要移动元素的,所以元素一多就会执行效率慢)
	  ②. 内存的物理空间是连续的,利用不到碎片空间

1.2 常用API

构造方法:
在这里插入图片描述
实例方法:
在这里插入图片描述
在这里插入图片描述


二、Vector

2.1 Vector概述

a.底层数据结构:顺序结构
b.底层实现:数组
c.特点:
  	①.全部和ArrayList一样
  	②.Vector上带有线程同步锁(synchronized),所以是线程安全的,效率低
d.优缺点:
  	全部和ArrayList一样

2.2 字段摘要

在这里插入图片描述

2.3 常用API

构造方法:
在这里插入图片描述
实例方法:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


三、ArrayList与Vector的异同(重点)

简而言之:

a.线程安全
  	 ArrayList不带锁,线程不安全(线程异步),效率高
  	 Vector带锁,线程安全(线程同步),效率低
b.扩容问题
  	 ArrayList扩容为原容量的1.5倍(),构造方法不可自定义增长因子
  	 Vector扩容为原容量的2倍(),构造方法可自定义增长因子(0也行),不定义则默认2倍
c.出现版本
	ArrayList出现于jdk1.2
	vector出现于jkd1.0
d.相同部分:
	 底层数据结构是数组结构
	 查找一个指定位置的数据 ,vector和arraylist使用的时间是相同 的,都是O(1)
	 继承的类实现的接口都是一样的:
		继承了AbstractList类(继承后可以使用迭代器遍历)
	 	实现了RandomAccess(标记接口,标明实现该接口的list支持快速随机访问)
	 	cloneable接口(标识接口,合法调用clone方法)
	 	serializable(序列化标识接口)

在这里插入图片描述


四、LinkedList

LinkedList概述及常用API


五、LinkedList与ArrayList的异同(重点)

LinkedList与ArrayList的异同


总结

提示:List大类总结到这里来,重点记住实现类之间的区别即可

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值