- java.util.stream.Stream<T>是JDK 8新加入的最常用的流接口。(这并不是一个函数式接口)
- 获取一个流非常简单,有以下几种常用的方式:
- 所有的Collection集合都是可以通过stream默认方法获取流
- default Stream<E> stream()
- Stream接口的静态方法of可以获取数组对应的流
- static <T> Stream<T> of (T...values)
- 参数是一个可变参数,那么我们就可以传递一个数组
代码实现:
//把集合转换我为Stream流 List<String> list = new ArrayList<>(); Stream<String> stream = list.stream(); Set<String> set = new HashSet<>(); Stream<String> stream1 = set.stream(); Map<String, String> map = new HashMap<>();
//获取键,储存到一个Set集合中 Set<String> set1 = map.keySet(); Stream<String> stream2 = set1.stream();
//获取键,存储到Collection集合中 Collection<String> values = map.values(); Stream<String> stream3 = values.stream();
//获取键值对 Set<Map.Entry<String, String>> entries = map.entrySet(); Stream<Map.Entry<String, String>> stream4 = entries.stream();
//把数据组转换为Stream流
第二种获取流的方式
Stream<Integer> integerStream = Stream.of(1, 2, 3, 4, 5); //可变参数可以传递参数 Integer[] arr = {1, 2, 3, 4, 5}; Stream<Integer> arr1 = Stream.of(arr); String[] arr3 = {"a","bbv","cc"}; Stream<String> arr31 = Stream.of(arr3);
Stream流中的常用方法——forEach
Stream流中的常用方法_forEach
void forEach(Consumer<? super T> action);
该方法接收一个Consumer接口函数,会将每一个流元素交给该函数进行处理。
Consumer接口是一个消费型的函数式接口,可以传递Lambda表达式,消费数据
简单记:
forEach方法,用来遍历流中的数据
是一个终结方法,遍历之后就不能继续调用Stream流中的其他方法
代码实现:
public static void main(String[] args) { //获取一个Stream流 Stream<String> stream = Stream.of("张三", "李四", "王五", "赵六", "田七", "赵八"); /*
使用Stream流中的方法forEach对Stream流中的数据进行遍历
stream.forEach((String name)->{ System.out.println(name); }); */ stream.forEach(name-> System.out.println(name)); }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~