Java集合简介

来源:互联网 发布:淘宝一口价怎么选择 编辑:程序博客网 时间:2024/05/19 20:57

Java为什么会有集合存在?

在编程中,我们常常需要集中存放多个数据,比如:学校的学生花名册,考试成绩等等,类似情况。有人会会说:数组也可以呀!没错,但是数组有它的优点也有它的不足之处:

1.我们在使用数组时,一旦为数组指定长度,那么这个数组的长度就会是不可变的,如果需要保存数量变化的数据,数组就显的无能为力了。
2.数组固然方便使用,但是数组没有办法保存映射关系的数据,比如:语文:89,数学:100。。。或者:某某 :男,某某:女等等。

为了保存数量不确定的数据,以及保存具有映射关系的数据(也称为关联数组),Java提供了集合类。集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类

集合类贴士
集合类集中在Java.util包下,为了处理多线程环境下的并发问题在Java 5时,Java.util.concurrent包下提供了一些支持多线程的集合类。

集合与数组的不同

数据元素既可以是基本类型的值,也可以是对象(实际上保存的是对象引用的变量),集合只能保存对象(实际上也是保存对象的引用变量,通常习惯上认为集合里保存的是对象)。

Java集合继承树

Java集合实际上是由两个接口派生出来的它们是:Collection和Map,Collection和Map是集合框架的根接口,这两个接口又包含一些子接口或实现类。
这里写图片描述

Collection继承树

这里写图片描述

Set 无序,不允许重复。List 有序,允许重复。

Map体系的继承树

这里写图片描述

所有的Map实现类都是用于保存具有映射关系的数据(前面说的关系数组)。这些实现类对冉在实现与用法上存在差异但是它们却拥有共同点:Map保存的每项数据都是以Key-Value 对,也就是由key和value两部分组成。就像成绩单:key(语文) -value(89),每项数据都是由题目与分数组成。
Map中,key是不允许重复的,因为key用于标识集合里的每项数据,如果需要查询Map中的数据总是根据key来查看。而value是可以重复的。

Java集合三大类

Set 集合类似一个罐子,包一个数据添加到集合时,Set无法记住添加这个元素的顺序,所以Set集合内的元素不允许重复(否则系统无法准确识别这个元素);如果访问Set中的元素,只能根据元素本身来访问(这也是Set不能有重复的原因)。

List 集合非常像一个数组,它可以记住每次添加元素的数序,且List的长度可变。如果访问List中的元素可以直接根据元素的索引来访问。

Map 集合也像一个罐子,只是它里面的数据都是由key-value两部分组成。如果访问Map中的数据,则需要根据key来获取value数据。

常用集合

对于Set、List、Queue和Map 四种集合,最常用的实现类分别是:HashSet、TreeSet、ArrayList、ArrayQueue、LinkedList、HashMap、TreeMap等。

对于Java 5新增的具有并发控制的集合类,与Java 7新增的TransferQueue及实现类linkedTransferQueue,将在后续更新。

We come nearest to the great when we are great in humility.
我们最为谦卑时便最接近伟大。

0 0
原创粉丝点击