JDK9 集合加强
List strs = List.of("Hello", "World");
List strsCopy = List. copyOf(strs);
Set strs = Set.of("Hello", "World");
Map maps = Map.of("Hello", 1, "World", 2);
stream()
stream 方法的作用就是将 Optional 转为一个 Stream,如果该 Optional 中包含值,那么就返回包含这个值的 Stream,否则返回一个空的 Stream(Stream.empty())
List<String> filteredListJava9 = list.stream()
.flatMap(Optional::stream)
.collect(Collectors.toList());
ifPresentOrElse()
public void ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction)
两个回调函数(如果存在调用第一个函数,不存在调用第二个参数)
or() 如果值存在,返回 Optional 指定的值,否则返回一个预设的值。
JDK11 字符串加强
1、字符串加强
// 判断字符串是否为空白
" ".isBlank(); // true
// 去除首尾空格
" Javastack ".strip(); // "Javastack"
// 去除尾部空格
" Javastack ".stripTrailing();
// 去除首部空格
" Javastack ".stripLeading(); // "Javastack "
// 复制字符串
"Java".repeat(3); // "JavaJavaJava"
// 行数统计
"A\nB\nC".lines().count(); // 3
JDK13 Switch Expressions (Preview)
switch (a){
case "1" -> System.out.println("1");
case "2" -> System.out.println("2");
case "3" -> System.out.println("3");
default -> {
System.out.println("暂无");
}
};
在这之后,switch中就多了一个关键字用于跳出switch块了,那就是yield,他用于返回一个值。和return的区别在于:return会直接跳出当前循环或者方法,而yield只会跳出当前switch块。