Vector, ArrayList, LinkedList

在jdk2之前(在的Java集合框架之前),要存储多个数据,此时存在一个叫Vector类

Vector类底层其实就是一个对象数组,矢量类中的方法是支持同步(方法使用synchronized修饰)

集合类中存储的对象是对象的引用,而不是对象的本身


=====================================================

ArrayList类是Java集合框架出现后用来取代Vector类的:

二者底层原理都是基于数组的算法,一模一样

区别:

Vector:所有方法都使用了synchronized修饰符

ArrayList:所有方法都没有使用synchronized修饰符

即使以后在多线程环境下,我们也不使用Vector类:

ArrayList list=Collection.synchronizedList(new ArrayList(...));

====================================================

LinkedList类是双向链表,单向队列,双向队列,栈的实现类

LinkedList类实现单向队列和双向队列的接口,自身提高了栈操作的方法,链表操作的方法

LinkedList类中存在很多方法,但是功能相同,LinkedList表示了多种数据结构的实现,每一种数据结构的操作名字不同

LinkedList类是线程不安全的类,在多线程环境下

LinkedList list=Collection.synchronizedList(new LinkedList(...));

无论是链表还是队列,都特别擅长操作头和尾的节点

在LinkedList中的大多数方法都是xxxFirst/xxxLast的

-------------------------------------------------------

LinkedList中存在Object get(index),表示根据索引位置获取对应的元素

链表中没有索引的概念,本不应该有索引,但是从Java2开始,存在了集合框架,让LinkedList类作为List接口的实现类,List中提供了根据索引找元素的方法,LinkedList内部类提供了一个变量来作为索引

该方法要少用,因为LinkedList不擅长做查询操作,擅长保存,删除操作





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值