Stream ApI--3.map,flatmap
来源:互联网 发布:电脑指令mac地址修改 编辑:程序博客网 时间:2024/05/22 17:04
1.Map(中间操作)
接收Lambda表达式,对每一个元素转换成其他形式或提前信息,接受一个函数作为参数,该函数会被用到每个元素上,并将其映射成一个新的元素。
map的参数十一个Function<T,R>接口,简单的说map就是类型转换 T->R,该接口的抽象函数 R apply(T t)
比如讲一个字符串的小写转大写
再比如对员工数组中的每个成员工资 这里可以利用方法引用
Stream.of("aaa","bbb","ccc","ddd").map((s)->s.toUpperCase()).forEach(System.out::println);System.out.println("--------------------------");employees.stream().map(Employee::getSalary).forEach(System.out::println);
AAABBBCCCDDD--------------------------6666.669999.993333.337777.777777.777777.775555.55
public static Stream<Character> filterChar(String str){List<Character> character=new ArrayList();for(Character c:str.toCharArray()){character.add(c);}return character.stream();}
employees.stream().map(Employee::getSalary).forEach(System.out::println);Stream<Stream<Character>> str=Stream.of("abc","defg","higjk").map(Run::filterChar);//map:将每个字符串转换成含字符信息的流,而map本身返回一个流,所以最终是Stream<Stream<Character>>的结构str.forEach((s)->{//对于Stream str 它的每个元素是Stream<Character>,所以还需在遍历s.forEach(System.out::println);});
2.flatMap
flatMap 接收一个Lambda函数,将每个值转换成另一个流,然后将所有的流连起来
Stream.of("abc","defg","higjk").flatMap(Run::filterChar).forEach(System.out::println);
3.map和flatMap
二者的关系有点像Collection一些列集合类中的add和addAll,比如list1 list2, 如果list1.add(list2) 则list2整个集合作为一个元素添加到list1中, list1.addAll(list2)是将list2中的各个元素添加到list1中
如果输入参数是流的话,map将处理过的流添加到流中,而flatMap是将流中的数据添加到流中
4.sorted()排序
sorted()----自然排序
sorted(Comparator com)----定制排序
Stream.of("bbb","bbb","ccc","aaa","ddd").map((s)->s.toUpperCase()).sorted().forEach(System.out::println);System.out.println("--------------------------");employees.stream().sorted((e1,e2)->{if(e1.getAge()==e2.getAge()){return e1.getName().compareTo(e2.getName());}else{return Integer.compare(e1.getAge(), e2.getAge());}}).forEach(System.out::println);
0 0
- Stream ApI--3.map,flatmap
- Stream API:filter、map和flatMap方法
- Stream 中的map 与flatMap 用法
- Java8 Stream的map和flatMap的区别
- java8之数据流Stream的Map和flatMap的区别
- flatMap Map
- java8 stream flatmap
- RDD应用API---flatMap、map、reduceByKey、collect、foreach
- map与flatmap区别
- Spark map flatMap
- Swift FlatMap or Map
- swift - map() 与flatMap()
- spark:map mapPartitions flatmap
- map和flatmap
- spark:map mapPartitions flatmap
- <spark>flatmap 和 map
- map和flatMap
- map与flatmap区别
- ubuntu更新内核切换内核启动
- css单位
- 关于任务节点时间限制的问题修正(TimeLimit)
- Numpy中的数组<矩阵>
- Linux用户及文件权限管理
- Stream ApI--3.map,flatmap
- 初识网页设计
- [BZOJ 4800][Ceoi2015]Ice Hockey World Championship:双向搜索
- Mplayer播放出现加硬解一些总结
- Eclipse项目导出Android studio项目详解
- 微信小程序开发:动画案例之圆点沿着圆圈运动
- 全排列递归算法详解
- 手机底部链接 部分失效
- linux设备驱动之i2c i2c_master_send