tags
date
type
status
slug
category
summary
password
icon
判空包装
Optional
基本用法
Optional
主要用于解决当对象可能为null
时的处理,避免直接使用null
检查
- 传统的
null
检查
- 使用
Optional
优雅地处理空值 private static void test(String str) { Optional.ofNullable(str) // 使用 ofNullable 包装可能为空的对象 .ifPresent(s -> System.out.println("字符串长度为:" + s.length())); // 如果不为空则执行}public static void main(String[] args) { test(null); // 不会抛出异常,因为 null 被优雅地处理}
Optional.ofNullable(str)
:将str
包装成Optional
对象,如果str
为null
,Optional
将持有一个空值。ifPresent(Consumer<? super T> action)
:只有在Optional
包含值时,才会执行给定的Consumer
行为。
Optional
常用方法get()
获取值get()
方法用于直接获取Optional
中的值。如果Optional
中没有值,会抛出NoSuchElementException
异常。orElse(T other)
返回Option
中的值,否则other参数指定的值private static void test(String str) { String s = Optional.ofNullable(str).orElse("我是为null的情况备选方案"); System.out.println(s); // 输出 "我是为null的情况备选方案"}
orElseGet(Supplier<? extends T> other)
与orElse
类似,但orElseGet
接受一个Supplier
,在Optional
为空时才会执行Supplier
,延迟计算结果。private static void test(String str) { String s = Optional.ofNullable(str).orElseGet(() -> "备选字符串"); System.out.println(s);}
- 提供默认值:通过
orElse
、orElseGet
等方法,可以为可能为空的值提供默认值。 - 链式调用:通过
map
、filter
等方法,可以实现更加简洁的链式调用,提高代码可读性。
数据结构基础
线性表
- 线性表是由同一类型的数据元素构成的有序序列的线性结构。线性表中元素的个数就是线性表的长度,表的起始位置称为表头,表的结束位置称为表尾,当一个线性表中没有元素时,称为空表。
- 主要功能
- get index 获取指定位置上的元素: 直接获取线性表指定位置
i
上的元素。 - insert 插入元素: 在指定位置
i
上插入一个元素。 - delete 删除元素: 删除指定位置
i
上的一个元素。 - get length 获取长度: 返回线性表的长度。
- 两种实现:顺序存储(顺序表)&& 链式存储(链表)
- 作者:瑾墨
- 链接:https://www.gaoqilan.tech/Code/1011a31f-082e-80f5-87de-c3f30472f11b
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。