Stream如何在java中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
我们提供的服务有:网站制作、成都做网站、微信公众号开发、网站优化、网站认证、高邑ssl等。为近1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的高邑网站制作公司
Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页开发;5. 企业级应用开发;6. Java大数据开发;7.游戏开发等。
1.映射
如果想通过某种操作把一个流中的元素转化成新的流中的元素,可以使用 map() 方法。
public class MapStreamDemo { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("周杰伦"); list.add("王力宏"); list.add("陶喆"); list.add("林俊杰"); Stream<Integer> stream = list.stream().map(String::length); stream.forEach(System.out::println); } }
2.排序
public void test3(){ //(1)自然排序 List<Integer> list = Arrays.asList(4,3,7,9,12,8,10,23,2); Stream<Integer> stream = list.stream(); stream.sorted().forEach(System.out::println); //(2)对象排序:对象类可以先实现comparable接口,或者是直接指定 //第一种:先实现compable接口 List<Student> studentList = StudentData.getStudents(); studentList.stream().sorted().forEach(System.out::println); //第二种:直接指定comparable List<Student> studentList1 = StudentData.getStudents(); studentList1.stream() .sorted((e1,e2)-> Integer.compare(e1.getAge(),e2.getAge())) .forEach(System.out::println); }
3.组合
reduce() 方法的主要作用是把 Stream 中的元素组合起来,它有两种用法:
Optional reduce(BinaryOperator accumulator)
没有起始值,只有一个参数,就是运算规则,此时返回 Optional。
T reduce(T identity, BinaryOperator accumulator)
有起始值,有运算规则,两个参数,此时返回的类型和起始值类型一致。
public class ReduceStreamDemo { public static void main(String[] args) { Integer[] ints = {0, 1, 2, 3}; List<Integer> list = Arrays.asList(ints); Optional<Integer> optional = list.stream().reduce((a, b) -> a + b); Optional<Integer> optional1 = list.stream().reduce(Integer::sum); System.out.println(optional.orElse(0)); System.out.println(optional1.orElse(0)); int reduce = list.stream().reduce(6, (a, b) -> a + b); System.out.println(reduce); int reduce1 = list.stream().reduce(6, Integer::sum); System.out.println(reduce1); } }
关于Stream如何在java中使用问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。
网站栏目:Stream如何在java中使用
网站网址:https://www.cdcxhl.com/article28/igjpjp.html
成都网站建设公司_创新互联,为您提供Google、面包屑导航、App设计、网站收录、网站营销、标签优化
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联