java学习3---集合类

集合类可以看作容器,用来存储对象的引用,其长度是可以改变的,不同的集合类有不同的存储对象。常用的集合类有Map类,List类和Set类。其中List类和Set类继承了Collection接口,各接口还有不同的实现类。

关系图如下:

68d5f9da44f4424db8ab047bb4118c70.jpg

 ①Collection接口

该接口为根接口,构成该接口的单位称为元素

该接口提供了一些添加元素,删除元素,管理数据的方法。如下:

 

c06c2e9c826a4dd6b06a56496613fabc.jpg

 遍历集合由迭代器(Iterator)实现,iterator(方法)可以返回此Collection进行迭代的迭代器。

遍历集合实例:

9c9b70c0c5f544afb314ff267a7679d6.jpg

7c6cf8a82a9e4e25a32034ec1aaa0785.jpg 

 ②List类

包含List接口和List接口的所有实现类,List接口包含Collection接口的所有方法,还有两个重要方法:

1.get(int index):获取指定位置的元素

2.set(int index,Object obj):将集合中指定元素

修改为指定对象。

List接口的两个实现类ArrayList类和LinkedList类。

1.ArrayList类实现了可变数组,允许包含所有元素,包括null. 可根据索引位置快速对集合进行访问。但是向指定位置插入或者删除对象较慢。

2.LinkedList类采用链表结构保存 对象,便于插入或删除对象。

通过ArrayList类和LinkedList类实例化List类

6a28f058b010449db7f438785f6716eb.jpg

 实例:

abbc6468c35240d091350d643fa1e00d.jpg

③Set类

该类对象不按特定方式排序,不包含重复对象,Set集合中有Collection接口的全部方法,Set接口,Set的实现类。

Set接口常见实现类有HashSet类和TreeSet类

1.HashSet类由哈西表支持,不保证Set集合的迭代顺序,允许存在null元素。

2.TreeSet类不仅实现Set接口,还实现java.util.SortedSet接口,因此在遍历集合时是顺序遍历递增排序。

TreeSet类增加的方法:

5af283f3b343497da8cf989f04064890.jpg

 

实例:使用TreeSet类实现升序排列

dcbf746db4b94d7aa4a2bbfea29faea7.jpg

63975ac72b32483084a60dd31386d02d.jpg

tips:

833c69b81a3741b7bae2e4553facab20.jpg 

 ④Map集合

无Collection接口,提供的是key到value的映射,不能有相同的key,每次key只能一个value。Map集合包Map接口和Map接口的所有实现类。

1.Map接口

提供了将key映射到值的对象,除常用集合方法外,还有以下方法:

0e6fb04f9686408fb551489814a2ab11.jpg

 2.Map的实现类

Map的实现类有HashMap类和TreeMap类

(i)HashMap类基于哈希表的Map接口实现,允许使用null值与null键,不保证映射顺序。

(ii)TreeMap类不仅实现了Map接口还实现了java.util.SortedMap接口,因此映射具有一定的顺序,不允许键对象为null。

建议使用HashMap类创建对象,因为由该类实现的Map集合添加和删除映射关系效率高,需要顺序输出时,可再创建一个完全相同的TreeMap类实例。

实例:输出Map集合中的书号和书名。

7ed542b568a64ba986f41a72860d8356.jpg

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ustinian.488

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值