集合-List

什么是集合

         存储对象的容器,面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,存储对象,集合是存储对象最常用的方法之一。

集合和数组的区别

数组和集合类都是容器,那么他们的区别是什么呢?

1、  数组长度是固定的,集合长度是可变的

2、  数组中可以存储基本数据类型,集合只能存储对象

3、  数组中存储数据类型是单一的,集合中可以存储任意类型的对象

集合分类单列集合(Collection)和键值对类型的集合(Map),在集合中存放的都是对象的引用。

在Collection接口下有两个子接口List和Set。其中,List是按照存储顺序来存储的,Set是不按照存储顺序来存储的,而且不可重复。

在实现List的类中常用的有ArrayList和LinkedList和Vactor。


ArrayList特性

ArrayList中底层是采用数组实现的。

1、  因为数组在内存中存储地址是连续的,所以查询速度快。所以,ArrayList的特性之一就是查询速度快

2、  因为ArrayList是数组实现的,在增和删的时候会牵扯到数组的增容和拷贝问题,所以速度慢。

所以ArrayList的特性就是查询快,增删慢。

LinkedList特性

LinkedList底层是采用链表实现的

1、  由于LinkedList在内存中地址不连续,需要一个元素记住下一个元素的位置,虽然也有角标,但是因为内存地址不连续,查找的时候,需要从头往下找。所以查询速度必ArrayList慢。

2、  因为LinkedList底层是采用链表实现,所以新增和删除元素,只涉及到该元素的前后两个元素的变化,所以增删块。

Vector特性

Vector描述的是一个线程安全的ArrayList。

ArrayList在单线程的时候效率高,但是当涉及到多线程的时候,可能会出现线程安全问题,所以为了维护线程安全,所以效率低。

以上总结了其原理性的东西,如果需要知道如何进行运用,可以查看API文档。

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值