Collection集合

1.集合概述

集合是Java中提供的一种容器,可以用来存储多个数据。

集合和数组既然都是容器,它们有啥区别?

  • 数组的长度是固定的。集合的长度是可变的。
  • 数组中存储的是同一类型的元素,可以存储基本数据类型值,可以存储对象。集合只能存储对象,而且对象类型可以不一致,在开发中一般当对象多的时候,使用集合进行存储。

集合类存放在java.util包中。主要的类型一共有四种:List(列表)、Set(集)、Queue(队列)、Map(映射)。其中主要有两大接口,分别是Collection和Map。其中List、Set、Queue实现了Collection接口。

这张图可以说非常经典了。

Tips:实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口。带有空心箭头的点线表示一个特定的类实现了一个接口,实心箭头表示某个类可以生成箭头所指向类的对象。比如,Collection可以生成Iterator。

图中标粗的类(HashSet、ArrayList、LinkedList、HashMap)是比较常用的集合。

首先在搞清楚常用集合之前,先说说有关集合的基本概念。

前面我们说到,在程序运行过程中,对于不确定数量、不确定类型的对象的存储,我们可以用集合来解决。也就是说,我们可以通过用这些集合,来方便的存储我们想要的对象。当然了,集合对对象的存储,并不是真正把对象塞到容器里来。

根据两大集合接口Collection和Map,我们可以把集合也分为两种不同的概念来探讨。

(1)Collection

它是一个序列,可以想象学校里学生们站排这个场景。每个学生就是一个对象,这个排就是一个Collection集合。不同的实现类,对于它所存储的对象的规则要求也不同。List、Queue须按照插入的顺序存储元素,而Set则不能有重复元素。这里简单说一下Queue,它实际上是对队列这种数据结构的一种实现,典型特性就是先进先出(FIFO)。Queue接口提供了offer(Object e)、peek()、poll()等方法对有关队列概念的操作进行实现。

 

(2)Map

它是一组成对的“键值对”对象,可以通过键来查找值。这就像班级的座位表,任课老师来班级上课,通过座位表上“第三排第五座”就能找到对应的学生“马叨叨”。最神奇的是,我们不光可以用类似“第三排第五座”这样的文字(String)来寻找值,我们也可用通过对象来寻找值。也就是说,Map中的键值都可以是对象。我们称这种对应关系为“映射表”。

 

posted @ 2020-10-14 11:33  GumpYan  阅读(70)  评论(0编辑  收藏  举报