为什么要使用集合和Java集合概述

主讲人:王少华  QQ群号:483773664

学习目标

1 理解为什么使用集合

2 掌握Java集合框架

一、使用数组缺陷:

在电子宠物系统中,如果想存储多个宠物信息,可以使用数组来实现。例如,可以定义一个长度50的Dog类型的数组,存储多个Dog对象的信息。但是采用数组存在以下一些明显的缺陷:

  • 数组长度固定不变,不能很好适应元素数量动态变化的情况。若要存储大于50个狗狗的信息,则数组长度不足;若只存储20个狗狗的信息,则造成内存空间浪费

  • 可通过数组名.length获取数组长度,却无法直接获取数组中真实存储的狗狗个数。

  • 数组采用在内在中分配连续空间的存储方式,根据下标可以快速获取对应的狗狗的信息。但根据狗狗的信息查找时效率低下,需要多次比较。


一一比较


二分法查找

二、数组不能完成的需求

在存储狗狗信息时,希望分别存储狗狗的呢称与狗狗的信息,两者存在一一对应的关系。如下图所示


数组肯定完成不了这种需求

三、Java集合概述

(一)什么是Java集合

  • 为了保存数量不确定的数据,以及保存具有映射关系的数据,Java提供集合类。

  • 集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类

  • 所有集合类都位于java.util包下

(二)Java集合框架

  • Java的集合类主要由两个接口派生而出:Collection和Map.

  • Collection接口、子接口及其实现类的继承树


Set和List接口是Collection接口派生的两个子接口,它们分别代表了无序集合和有序集合;

Queue是Java提供的队列的实现。

  • Map体系的继承树


Map保存的每项数据都是key-value对,也就是由key和value两个值组成。

Map里的key是不可重复的,key用于标识集合的每项数据,如果需要查阅Map中数据时,总是根据Map的key来获取

比如要保存一个人的信息(包括身份证号码和姓名)

(三)总结

Java集合可以分为三大类

Set:类似一个大罐子,元素的特点:无序、不可重复。最常用的实现类:HashSet

List:像一个数组,只是List的长度可变,元素特点:有序、可重复。最常用的实现类ArrayList

Map:像一个罐子,元素特点:有两个值组成。最常用的实现类:HashMap