2021.12.12学习记录

本文深入探讨了Java中的Collections工具类,包括排序、查找和替换等操作,并介绍了Optional类的使用,如创建、检查和获取值的方法。此外,还讨论了队列(Queue)、双端队列(Deque)和堆栈(Stack)的概念。最后,我们涉及了一对多和多对多的设计模式及其在集合中的应用,以及迭代器设计模式的角色和应用场景。
摘要由CSDN通过智能技术生成

 一、Collections工具类

Collections工具类内部提供了大量针对Collection/Map的方法,都为静态方法。总体分为以下四类:

1、排序操作(针对List接口):

1)reverse(List list):指定元素进行序列反转

2)shuffle(List list):对集合中的元素进行随机排序

3)sort(List list):对集合进行升序操作

4)sort(List list,Comparator com):自定义比较器升序操作

5)swap(List list,int i ,int j ):对集合里的两个元素进行换位操作

6)rotate(List list,int distance):将所有元素向右移指定长度

2、查找替换操作(针对Collection接口):

1)binarySearch(List list,Object key):使用二分法查找,前提是已经排好序

2)max(Collection coll):返回最大值

3)max(Collection coll,Comparator com):根据比较器操作返回最大值

4)min(Collection coll):返回最小值

5)min(Collection coll,Comparator com):根据比较器操作返回最小值

6)fill(Collection coll):使用指定对象进行填充

7)frequency(Collection coll,Object key):返回指定元素出现的次数

8)replaceAll(List old,List new,Object key):替换

3、同步控制

4、设置不可变集合

1)emptyXxx():返回一个不可变集合

2)singletonXxx():返回一个只包含指定元素的的不可变集合

3)unmodifiableXxx():返回集合指定对象不可变试图

二、Optional类的使用

容器对象,专门为了解决空指针异常而生成的一个类

内部方法:

of():为非null值创建的一个Optional

ofNullable():为指定值创建一个Optional,如果为null,则返回一个空的Optional

isPressent():如果值存在返回true,否则为false

get():获取值,如果为空则抛出异常

orElse():有值则返回,否则返回其他值

三、队列与栈

队列(Quque):先进先出模式,即排队模式,先进入的先出,只能在一端进行操作

双队列(Deque):先进先出模式,即排队模式,先进入的先出,但是能在两头进行操作

堆栈(Stack):先进后出模式,即压栈模式,先进去的会被压到栈底

四、一对多与多对多模式

此类设计模式是对集合的应用实例,通过此类设计模式将两个对象连接起来

1、多个对象绑定一个对象,只需要在设计时在该类里面创建单对象的对象

2、单对象绑定多对象,需要在单对象里设计集合,然后将多对象填入集合

3、多对多模式,可以设计一个中间单对象,然后设计两个单对多模式

五、迭代器设计模式

迭代模式,就是设计一个方法,按照顺序遍历一个集合内的所有元素,且不需要展示内部对象

应用场景:

1、遍历一个集合内的所有元素,且不需要展示内部对象

2、支持多种遍历方法

3、对于不同的方法,提供同一个接口

角色构成:

1、迭代器角色(Iterator):定义实现遍历的方法,

2、具体迭代角色(Concrete Iterator ):实现迭代器角色里的方法

3、容器角色(Aggregate):一个接口,提供Iterator()的方法

4、具体容器角色(Concrete Aggregate):实现容器角色里的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值