首页
留言板
友链
关于
Search
1
内测“合金弹头”嘿嘿
889 阅读
2
Nginx搭建一个简易的图床
840 阅读
3
Kettle循环遍历结果集作为参数传入转换
822 阅读
4
Apache Dubbo初步认识
437 阅读
5
Maven3.3.9的安装与配置
420 阅读
知识库
好奇猫
日常说
笔记本
登录
/
注册
Search
标签搜索
maven
Spring
vue
Java
Java代码
前端
idea
帆软
MySQL
git
CSS
游戏
Bootstrap
生活
网上冲浪
邮件配置
说说
Nginx
Excel
数据库调优
龙流
累计撰写
61
篇文章
累计收到
18
条评论
首页
栏目
知识库
好奇猫
日常说
笔记本
页面
留言板
友链
关于
搜索到
1
篇与
stream流
的结果
2022-07-14
java的Strem流和Lambda写法
1、首先知道哪些方式可以生成Stream流Collection体系集合,使用默认的straem()生成流;(eg: ArrayList->method:Stream stream())Map体系集合,把Map转成Set集合,间接的生成流; (Map->method:Set keySet())数组,通过Stream接口的静态方法Stream.of(T... values)生成流2、Stream流中间操作方法方法名说明Stream filter(Predicate predicate)用于对流中的数据进行过滤Stream limit(long maxSize)返回此流中的元素组成的流,截取前指定参数个数的数据Stream skip(long n)跳过指定参数个数的数据,返回由该流的剩余元素组成的流static Stream concat(Stream a, Stream b)合并a和b两个流为一个流Stream distinct()返回由该流的不同元素(根据Object.equals(Object) )组成的流Stream sorted()返回由此流的元素组成的流,根据自然顺序排序Stream sorted(Comparator comparator)返回由该流的元素组成的流,根据提供的Comparator进行排序Stream map(Function mapper)返回由给定函数应用于此流的元素的结果组成的流IntStream mapToInt(ToIntFunction mapper)返回一个IntStream其中包含将给定函数应用于此流的元素的结果3、Stream流的收集操作【应用】概念 对数据使用Stream流的方式操作完毕后,可以把流中的数据收集到集合中。常用方法 R collect(Collector collector) 把结果收集到集合中工具类Collectors提供了具体的收集方式方法名说明public static Collector toList()把元素收集到List集合中public static Collector toSet()把元素收集到Set集合中public static Collector toMap(Function keyMapper,Function valueMapper)把元素收集到Map集合中代码实例public class CollectDemo { public static void main(String[] args) { //创建List集合对象 List<String> list = new ArrayList<String>(); list.add("林青霞"); list.add("张曼玉"); list.add("王祖贤"); list.add("柳岩"); /* //需求1:得到名字为3个字的流 Stream<String> listStream = list.stream().filter(s -> s.length() == 3); //需求2:把使用Stream流操作完毕的数据收集到List集合中并遍历 List<String> names = listStream.collect(Collectors.toList()); for(String name : names) { System.out.println(name); } */ //创建Set集合对象 Set<Integer> set = new HashSet<Integer>(); set.add(10); set.add(20); set.add(30); set.add(33); set.add(35); /* //需求3:得到年龄大于25的流 Stream<Integer> setStream = set.stream().filter(age -> age > 25); //需求4:把使用Stream流操作完毕的数据收集到Set集合中并遍历 Set<Integer> ages = setStream.collect(Collectors.toSet()); for(Integer age : ages) { System.out.println(age); } */ //定义一个字符串数组,每一个字符串数据由姓名数据和年龄数据组合而成 String[] strArray = {"林青霞,30", "张曼玉,35", "王祖贤,33", "柳岩,25"}; //需求5:得到字符串中年龄数据大于28的流 Stream<String> arrayStream = Stream.of(strArray).filter(s -> Integer.parseInt(s.split(",")[1]) > 28); //需求6:把使用Stream流操作完毕的数据收集到Map集合中并遍历,字符串中的姓名作键,年龄作值 Map<String, Integer> map = arrayStream.collect(Collectors.toMap(s -> s.split(",")[0], s -> Integer.parseInt(s.split(",")[1]))); Set<String> keySet = map.keySet(); for (String key : keySet) { Integer value = map.get(key); System.out.println(key + "," + value); } } }
2022年07月14日
84 阅读
0 评论
0 点赞