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



学习目标

1 理解为什么使用集合

2 掌握Java集合框架

一、使用数组缺陷:

在电子宠物系统中,如果想存储多个宠物信息,可以使用数组来实现。例如,可以定义一个长度50的Dog类型的数组,存储多个Dog对象的信息。但是采用数组存在以下一些明显的缺陷:数组长度固定不变,不能很好适应元素数量动态变化的情况。若要存储大于50个狗狗的信息,则数组长度不足;若只存储20个狗狗的信息,则造成内存空间浪费

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

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

java什么时候要new什么时候可以不用_Java

一一比较

java什么时候要new什么时候可以不用_集合类_02

二分法查找

二、数组不能完成的需求

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

java什么时候要new什么时候可以不用_集合类_03

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

三、Java集合概述

(一)什么是Java集合为了保存数量不确定的数据,以及保存具有映射关系的数据,Java提供集合类。

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

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

(二)Java集合框架Java的集合类主要由两个接口派生而出:Collection和Map.

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

java什么时候要new什么时候可以不用_java中为什么要使用集合_04

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

Queue是Java提供的队列的实现。Map体系的继承树

java什么时候要new什么时候可以不用_Java_05

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

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

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

(三)总结

Java集合可以分为三大类

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

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

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