java-不可变集合、Stream流、异常笔记

本文详细介绍了Java中的不可变集合,包括其定义、创建方法和使用场景。接着深入探讨了Stream流的概念、获取方式、常用API及收集方法。最后,文章总结了异常处理的基本原理,包括异常的分类、处理机制和自定义异常的实现,旨在提高代码的稳定性和健壮性。
摘要由CSDN通过智能技术生成

目录

一、不可变集合

1.什么是不可变集合?

2.为什么要创建不可变集合?

3.如何创建不可变集合?

二、Stream流

1.Stream流的概述

(1)什么是Stream流?

(2)Stream流式思想的核心

3.Stream流的获取

(1)集合获取Stream流的方式

(2)数组获取Stream流的方式

4.Stream流的常用API

(1)中间方法

5.收集Stream流

(1)收集Stream流的含义

(2)Stream流的收集方法

三、异常

1.异常概述、体系

(1)什么是异常?

(2)为什么要学习异常?

(3)异常体系

2.常见运行时异常

3.常见编译时异常

4.异常的默认处理流程

5.编译时异常的处理机制

(1)异常处理方式1 ——throws

(2)异常处理方式2 —— try...catch...

(3)前两者结合,出现异常直接抛出去给调用者,调用者捕获处理。

6.运行时异常的处理机制

7.异常处理使代码更稳健的案例

8.自定义异常


一、不可变集合

1.什么是不可变集合?

不可变集合,就是不可被修改的集合。

集合的数据项在创建的时候提供,并且在整个生命周期中都不可改变。否则报错。

2.为什么要创建不可变集合?

如果某个数据不能被修改,把它防御性地拷贝到不可变集合中是个很好的实践。

或者当集合对象被不可信的库调用时,不可变形式是安全的。

3.如何创建不可变集合?

在List、Set、Map接口中,都存在of方法,可以创建一个不可变的集合。

方法名称

说明

static <E>  List<E>  of(E…elements)

创建一个具有指定元素的List集合对象

static <E>  Set<E>  of(E…elements)

创建一个具有指定元素的Set集合对象

static <K , V>   Map<K,V>  of(E…elements)

创建一个具有指定元素的Map集合对象

二、Stream流

1.Stream流的概述

(1)什么是Stream流?

在Java 8中,得益于Lambda所带来的函数式编程, 引入了一个全新的Stream流概念。 目的:用于简化集合和数组操作的API。

(2)Stream流式思想的核心

a.先得到集合或者数组的Stream流(就是一根传送带)

b.把元素放上去

c.然后就用这个Stream流简化的API来方便的操作元素。

3.Stream流的获取

(1)集合获取Stream流的方式

名称

说明

default Stream<E> stream​()

获取当前集合对象的Stream流

        //Collection集合获取流
        Collection<String> list = new ArrayList<>();
        Stream<String> s = list.stream();

        //Map集合获取流
        Map<String, Integer> maps = new HashMap<>();
        //键流
        Stream<String> keyStream = maps.keySet().stream();
        //值流
        Stream<Integer> valueStream = maps.values().stream();
        //键值对象
        Stream<Map.Entry<String, Integer>> keyAndValueStream = maps.entrySet().stream();

(2)数组获取Stream流的方式

名称

说明

public static <T> Stream<T> stream(T[] array)

获取当前数组的Stream流

public static<T> Stream<T> of(T... values) 

获取当前数组/可变数据的Stream流

        String[] names = {"张无忌", "赵敏", "周芷若", "小昭"};
        Stream<String> nameStream = Arrays.stream(names);
        Stream<String> nameStream2 = Stream.of(names);

4.Stream流的常用API

(1)中间方法

名称

说明

Stream<T> filter(Predicate<? super T> predicate)

用于对流中的数据进行过滤。

Stream<T> limit​(long maxSize)

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值