Java8新特性——Stream的常用方法:filter,map,sorted

1.概念
Stream是Java8中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的的查找、过滤和映射等操作。使用Stream API对集合数据进行操作,就类似于使用SQL执行的数据库查询。简而言之,Stream API提供了一种高效且易于使用的处理数据的方式。

2.主要方法
①filter : 过滤流中的某些元素

1
2
3
4
5
6
7
8
9
10
11
public static void main(String[] args) {
        List<Integer> list = new ArrayList<Integer>();
        list.add(2);
        list.add(1);
        list.add(3);
        list.add(5);
        list.add(4);
 
        List<Integer> newList = list.stream().filter((n) -> {  //筛选出大于等于4的元素
            return n >= 4;
        }).collect(Collectors.toList()); //collect(Collectors.toList());的作用:收集 成一个list集合System.out.println(newList); }

 

 

②map( ):

接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static void main(String[] args) {
        List<Integer> list = new ArrayList<Integer>();
        list.add(2);
        list.add(1);
        list.add(3);
        list.add(5);
        list.add(4);
 
        List<Integer> newList = list.stream().filter((n) -> {
            return n >= 4;
        }).map((m)->{if(m==5){  //判断元素的值是否等于5,等于5则返回当前的值,否则返回0
            return m;
        }else {
            return 0;
        }}).collect(Collectors.toList());
 
        System.out.println(newList);
    }

 

 

③sorted(Comparator com):定制排序,自定义Comparator排序器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static void main(String[] args) {
        List<Integer> list = new ArrayList<Integer>();
        list.add(2);
        list.add(1);
        list.add(3);
        list.add(5);
        list.add(4);
 
        List<Integer> newList = list.stream().sorted((Integer a,Integer b)->{
           return a-b;
        }).collect(Collectors.toList());
 
        System.out.println(newList);
    }

 

 

前者跟后者比较为升序,后者跟前者比较为降序  

  

  

 

posted @   iTao0128  阅读(758)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-07-16 SpringBoot下读取自定义properties配置文件
2021-07-16 Calendar、SimpleDateFormat 时间用法
点击右上角即可分享
微信分享提示