12章集合类

12.1集合类概述
java.util包中提供了集合类,数组类与集合类不同的是:数组类的长度是固定的,而集合类的长度是可变的;数组用来存放基本类型的数据,集合类用来存放对象的引用。常用的集合有List集合,与Set集合和Map集合,其中List集合与Set集合继承了Collection接口,各接口还提供了不同的实现类。
2.2Collection接口
Collection 接口是层次结构中的根接口,构成 Collection的单位称为元素。Collection接口通常不能直接使用,但该接口提供了添加元素、删除元素、管理数据的方法。由于List 接口与 Set 接口都继承
Lis
了Collection 接口,因此这些方法对List集合与Set集合是通用的。

12.3List集合
List集合包括List口List口的所有实现类。List元素许重复,各元素的顺序就是对象插入的顺序。类似 Java 数组,用户可通过使用索引(元素在集合中的位置)来访问集合中的元素。

12.3.1List接口

List接口继承了 Collection 接口,因此包含 Collection 接口中的所有方法。此外,List 接口还定义了以下两个非常重要的方法:
get(int index):获得指定索引位置的元素。
set(int index,Object obj):将集合中指定索引位置的对象修改为指定的对象。

12.3.2List接口的实现类

List 接口的常用实现类有ArrayList类(查找)与LinkedList 类(增:add,删:remove,改;set获取:get),简述如下:
日 ArrayList 类实现了可变的数组,允许保存所有元素,包括null,并可以根据索引位置对集合进行快速的随机访问。缺点是向指定的索引位置插入对象或删除对象的速度较慢。
LinkedList类采用链表结构保存对象。这种结构的优点是便于向集合中插入和删除对象。需要
向集合中插入、删除对象时,使用 LinkedList 类实现的 List集合的效率较高;但对于随机访问集合中的对象,使用 LinkedList 类实现 List 集合的效率较低。
使用Lst集合时通常声明为List类型,可通过不同的实现类来实例化集合。

12.4Set集合
Set集合中的对象不按特定的方式排序,只是简单地把对象加入集合中,但 Set 集合中不能包含重夏对象。Set集合由Set接口和set接口继承了Collection接口,因此包含Colletion接口的所有方法。

Set 接口常用的实现类有HashSet类(散列集合 )与TreeSet类(树集合)
HashSet 类实现 Set 接口,由哈希表(Hashcode)(实际上是一个HashMap实例)支持。它不保证 Set 集合的迭代顺序,特别是它不保证该顺序恒久不变。此类允许使用 null 元素。
TreeSet 类不仅实现了 Set 接口,还实现了java.util.SortedSet接口,因此 TreeSet 类实现的 Set集合在遍历集合时按照自然顺序递增排序,也可以按照指定比较器递增排序,即可以通过比较器对用 TreeSet 类实现的 Set集合中的对象进行排序。

contains();是否存在

.hasNext();判断是否有下一个元素

Next();拿去下一个

12.5Map集合
Map 集合没有继承Collection 接口,其提供的是key到 value 的映射。(键值映射)Map 集合中不能包含相同的 key,每个 key 只能映射一个value。key还决定了存储对象在映射中的存储位置,但不是由 key 对象本身决定的,而是通过一种“散列技术”进行处理,产生一个散列码的整数值。散列码通常用作一个偏移量,该偏移量对应分配给映射的内存区域的起始位置,从而确定存储对象在映射中的存储位置。Map集合包括 Map 接口以及 Map 接口的所有实现类。

12.5.1Map接口

Map接口提供了将key映射到值的对象。一个映射不能包含重复的 key,每个 key 最多只能映射到一个值。(键不可重复,值可重复)

12.5.2Map接口的实现类

Map 接口常用的实现类有 HashMap 类和 TreeMap 类,简述如下:
     HashMap 类是基于哈希表的 Map 接口的实现,此实现提供所有可选的映射操作,并允许使用
hSet    null 值和null 键,但必须保证键的唯一性。HashMap类通过哈希表对其内部的映射关系进行快速查找。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。
    TreeMap 类不仅实现了 Map接口,还实现了java.util.SortedMap接口,因此集合中的映射关系具有一定的顺序。但在添加、删除和定位映射关系时,TreeMap 类比 HashMap类性能稍差。由于TreeMap 类实现的Map集合中的映射关系是根据键对象按照一定的顺序排列的,因此不允许键对象是 null。
      建议使用HshappahMapap和删射关系效率更高。可以通过HashMap类创建Map集合,当需要顺序输出时,再创建一个完成相同映射关系的 TreeMap 类实例。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值