Java入门:掌握集合与Stream流的基础知识
发表时间: 2024-05-25 17:58
不可变集合
import java.util.List;import java.util.Map;import java.util.Set;public class CollectionDemo1 { public static void main(String[] args) { List<Double> l = List.of(100.0, 300.0, 248.6, 12.3); System.out.println(l); Set<String> s = Set.of("java", "php", "python"); System.out.println(s); Map<String, Integer> m = Map.of("张三", 10, "李四", 20); System.out.println(m); }}
Stream流
import java.util.ArrayList;import java.util.Collections;import java.util.List;public class CollectionDemo2 { public static void main(String[] args) { List<String> l = new ArrayList<>(); Collections.addAll(l, "张三", "李四", "王五", "张二"); System.out.println(l); l.stream().filter(s -> s.startsWith("张")).forEach(s -> System.out.println(s)); // 收集Stream到集合或数组中,便于其他使用 Stream<String> sl = l.stream().filter(s -> s.startsWith("张")); List<String> zhangList = sl.collect(Collectors.toList()); System.out.println(zhangList); }}
① 获取Stream流,创建一个流并把数据放入其中的,准备进行操作
② 中间方法,流上的操作,可以进行链式操作
③ 终结方法,一个流只有一个终结方法(forEach、count),是流上的最后一个操作方法,调用完成后就无法继续再使用
import java.util.*;import java.util.stream.Stream;public class CollectionDemo3 { public static void main(String[] args) { // Collection集合获取流 Collection<String> list = new ArrayList<>(); Stream<String> lStream = list.stream(); // Map集合获取流 Map<String, Integer> maps = new HashMap<>(); // 键流 Stream<String> keyStream = maps.keySet().stream(); // 值流 Stream<Integer> valStream = maps.values().stream(); // 键值对流 Stream<Map.Entry<String, Integer>> keyAndValStream = maps.entrySet().stream(); // 数组获取流 String[] names = {}; // 方式1 Stream<String> nameStream = Arrays.stream(names); // 方式2 Stream<String> nameStream1 = Stream.of(names); }}