不可变集合
- 不可变集合就是不可以修改、添加、删除的集合
- 集合的数据在创建的时候就提供,且在整个生命周期都不可变
- 在List、Set、Map接口中,都存在of方法,可以创建一个不可变集合
import java.util.List;
import java.util.Map;
import java.util.Set;
public class CollectionDemo1 {
public static void main(String[] args) {
List l = List.of(100.0, 300.0, 248.6, 12.3);
System.out.println(l);
Set s = Set.of("java", "php", "python");
System.out.println(s);
Map m = Map.of("张三", 10, "李四", 20);
System.out.println(m);
}
}
Stream流
- 用于简化集合和数组操作的API,结合Lambada表达式
- 流中无法直接修改集合、数组中的数据
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CollectionDemo2 {
public static void main(String[] args) {
List l = new ArrayList<>();
Collections.addAll(l, "张三", "李四", "王五", "张二");
System.out.println(l);
l.stream().filter(s -> s.startsWith("张")).forEach(s -> System.out.println(s));
// 收集Stream到集合或数组中,便于其他使用
Stream sl = l.stream().filter(s -> s.startsWith("张"));
List zhangList = sl.collect(Collectors.toList());
System.out.println(zhangList);
}
}
- Stream流的三类方法
① 获取Stream流,创建一个流并把数据放入其中的,准备进行操作
② 中间方法,流上的操作,可以进行链式操作
③ 终结方法,一个流只有一个终结方法(forEach、count),是流上的最后一个操作方法,调用完成后就无法继续再使用
import java.util.*;
import java.util.stream.Stream;
public class CollectionDemo3 {
public static void main(String[] args) {
// Collection集合获取流
Collection list = new ArrayList<>();
Stream lStream = list.stream();
// Map集合获取流
Map maps = new HashMap<>();
// 键流
Stream keyStream = maps.keySet().stream();
// 值流
Stream valStream = maps.values().stream();
// 键值对流
Stream> keyAndValStream = maps.entrySet().stream();
// 数组获取流
String[] names = {};
// 方式1
Stream nameStream = Arrays.stream(names);
// 方式2
Stream nameStream1 = Stream.of(names);
}
}
- Stream流常用API
本文暂时没有评论,来添加一个吧(●'◡'●)