java 集合类

一、

1、所有的Java集合都在java.util包中

2、Java集合框架:Java中的 一套设计优良的接口和类组成的集合框架。

3、List、Set、Map是这个集合体系中最主要的三个接口。

List有序且允许元素重复。ArrayList、LinkedList是主要的实现类。

Set不允许元素重复。HashSet和TreeSet是两个主要的实现类。
Map也属于集合系统,HashMap、TreeMap是主要的实现类。Map是key对value的映射集合,其中key列就是一个集合。key不能重复,但是value可以重复。

要经常遍历集合内元素,就要使用List接口;如果要保证集合中不存在重复的数据,就要用Set接口;如果要通过某一键来查找某一值,就要使用Map接口。

4、Iterator是为了满足遍历的需求写的一个接口(接下来的文章会详细介绍)      

  

二、Java集合框架的解释以及和数据结构的关系:


1、List接口代表的是有序列表 

①、ArrayList对应数据结构里的顺序表的概念,在ArrayList内部封装了一个长度可变的数组对象,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,所以可以将ArrayList集合看作一个长度可变数组。(但是Java中数组创建时长度是确定的,之所以可以看作一个长度可变数组其实是新建了一个新数组,然后将原来数组的值复制到新数组里面。可能会认为这样效率很低,但其实ArrayList赋值数组的方法使用的是Java虚拟机实现的本地方法,直接操作内存空间,并不是一个个元素遍历来复制的。)


②、LinkedList既可以当成普通的链表使用,也可以当成队列和栈来使用LinkedList是List接口的链表实现,同时实现了Deque接口(Queue子接口),链表的随机插入和删除效率高于数组,而随机访问和修改效率则低于数组。这也是LinkedList与ArrayList的差别。


2、Set接口代表的是无序列表 

Set接口的契约很单纯,不会做过多的保证。Set集合的重点就是“元素不重复的集合”,而对顺序不做保证(也就是不做限制,有序无序都可以)。实现该接口的类既可以提供有序的实现,也可以提供无序的实现。 


①HashSet保存数据的时候显然还是得按一定顺序放入其背后的数组中,但顺序不是用户可控制的,对用户来说就是“无序”。 特点是能快速定位一个元素,放到HashSet中的对象需要实现hashCode()方法,哈希码的算法


②TreeSet则将放入其中的元素按序存放,这就要求你放入其中的对象是可排序的。


3、Map接口代表是关联数组 

Map接口是一种双列集合,它的每个元素都包含一个键对象Key和一个值对象Value,键和值对象之间存在一中对应关系,称为映射。

注意:键对象Key不可以重复.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值