专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java学习:基础(不可变集合、Stream流)

temp10 2025-02-20 17:56:00 java教程 17 ℃ 0 评论

不可变集合

  • 不可变集合就是不可以修改、添加、删除的集合
  • 集合的数据在创建的时候就提供,且在整个生命周期都不可变
  • 在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流

Java学习:基础(不可变集合、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

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表