java里面集合类的个人学习记录

关于集合类以前忘记的时候总是去翻书,现在想写成博客加深印象。

提到集合类就容易想到数组,那么现在说一下数组和集合类的主要区别:

  1. 数组的长度在定义的时候就已经确定了,而集合的长度是可变的;
  2. 数组是用来存放基本类型的数据(例如:byte,short,int等类型的数据),而集合是用来存放对象的引用。 

                                       

                                                                 上图是常见的集合类的继承关系

    1:首先是Collection接口:

Collection接口是层次结构中的根接口,其常用的方法如下表:

                                                                                     

Collection接口常用方法
    方法功能描述
add(E e)将指定对象添加到该集合中
remove(Object o)将指定对象从该集合中移除
isEmpty()返回布尔值,用于判断当前集合是否为空
iterator()返回在此Collection的元素上进行迭代的迭代器。用于遍历集合中的对象
size()返回int型值,获取该集合中元素的个数

注意:Collection接口通常是不能直接使用的,但该接口提供了添加元素,删除元素,管理数据的方法。由于List接口与Set接口都是继承于Collection接口,因此上面的方法对list集合和Set集合是通用的。   

2:List集合和Set集合主要区别

1)List集合中的元素是允许重复,各元素的顺序就是对象插入的顺序。类似数组,可以通过使用索引(元素在集合中的位置)来访问集合中的元素。

2)Set集合中的对象不按特定方式排序,只是简单的把对象加入到集合中,但Set集合中不能包含重复对象的值。

3:ArrayList和LinkeList主要区别

1)ArrayList类实现了可变的数组,允许保存所有元素,包括null,并可以根据索引位置对集合进行快速的随机访问;缺点是向指定索引位置插入对象或删除对象的速度较慢;

2)LinkedList类采用链表结构保存对象。这种结构的优点是便于向集合中插入和删除对象,但是对于随机访问集合中的对象的效率较低。

注意:关于ArrayList和LinkedList之间优缺点主要是他们采用不同的数据存储结构所导致的.ArrayList采用的是线性存储结构,它们在内存里面是连续的分配空间的;而LinkedList是链表存储结构的,他们在内存里面不是连续的分配空间,各元素之间主要是根据前后指针建立起联系的。

4:Map集合

Map集合没有继承Collection,其提供的是key到value的映射。Map中不能包含相同的key,每一个key只能映射到一个Value。key还决定了存储对象在映射中的存储位置。关于Map集合具体细节也不是很清楚,只是大概了解一点。用到了散列码,在加上偏移量就可以确定在内存区域中的起始位置。具体细节没有去深究。

                                                                                                            

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值