Java中的集合(1)—— 概念与分类 * + *

一、为啥要用集合?

在编程时,常常需要集中存放多个数据,虽说可以使用数组来保存多个对象,但数组长度不可变化,一旦在初始化数组时指定了数组长度,这个数组长度就是不可变的,如果需要保存数量变化的数据,数组就有点无能为力了;而且数组无法保存具有映射关系(关联关系key-value)的数据,如成绩表:语文-79 ,数学-80 ,这种数据看上去像两个数组,但这两个数组的元素之间有一定的映射关系。

故:需要解决:保存数量不确定的数据,以及保存具有映射关系的数据( 也被称为关联数组), Java 提供了集合类。

二、集合类与数组的区别?

数组元素既可以是基本类型的值,也可以是对象(实际上保存的是对象的引用变量);

集合里只能保存对象(实际上只是保存对象的引用变量,但通常习惯上认为集合里保存的是对象〉。

三、集合的分类?

Java 的集合类主要由两个接口派生而出: Collection 和Map , Collection 和Map 是Java 集合框架的根接口,这两个接口又包含了一些子接口或实现类。

下图是Collection 接口、子接口及其实现类的继承树、Map 体系的继承树,所有的Map 实现类用于保存具有映射关系的数据。

粗线圈出的Set 和List 接口是Collection 接口派生的两个子接口,它们分别代表了无序集合和有序集合; Queue 是Java 提供的队列实现,有点类似于List ,Map 接口的众多实现类,这些实现类在功能、用法上存在一定的差异, 但它们都有一个功能特征: Map 保存的每项数据都是key-value 对。

可以把Java 所有集合分成三大类, 其中Set 集合类似于一个罐子,把一个对象添加到Set 集合时, Set 集合无法记住添加这个元素的顺序,所以Set 里的元素不能重复(否则系统无法准确识别这个元素) ;Li st 集合非常像一个数组, 它可以记住每次添加元素的顺序、且Li st 的长度可变。Map 集合也像一个罐子,只是它里面的每项数据都由两个值组成。

如果访问List 集合中的元素,可以直接根据元素的索引来访问: 如果访问Map 集合中的元素,可以根据每项元素的key 来访问其value; 如果访问Set 集合中的元素,则只能根据元素本身来访问(这也是Set 集合里元素不允许重复的原因) 。

对于Set、List 、Queue 和Map 四种集合,最常用的实现类在图 中以灰色背景色覆盖,分别是HashSet、TreeSet 、ArrayList 、ArrayDeque 、LinkedList 和HashMap 、TreeMap 等实现类。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值