StreamAPI中常用的方法

StreamAPI中常用的方法

  • filter()

    lambda函数传入一个参数,返回符合条件的流

        public static void main(String[] args) {
            List<String> strings = new ArrayList<String>() {
                {
                    add("test1");
                    add("test2");
                    add("test3");
                    add("test4");
                }
            };
            strings.stream()
                    .filter(s->s.charAt(0)=='t')
                    .forEach(s->System.out.print(s+" "));
        }
    
  • forEach()

    不返回,直接消费,labmda函数传入一个参数,即流中的一个元素,见上例

  • limit(long maxSize)

    返回一个指定大小的流(顺序)

        public static void main(String[] args) {
            List<String> strings = new ArrayList<String>() {
                {
                    add("test1");
                    add("test2");
                    add("test3");
                    add("test4");
                }
            };
            strings.stream()
                    .limit(3)
                    .forEach(s -> System.out.print(s + " "));
        }
    
  • max()

    按指定方式比较的最大值

        public static void main(String[] args) {
            List<String> strings = new ArrayList<String>() {
                {
                    add("test1");
                    add("test2");
                    add("test3");
                    add("test4");
                }
            };
            String s = strings.stream()
                    .max((s1, s2) -> {
                        return s1.compareTo(s2);
                    }).get();
            System.out.print(s);
        }
    
  • min()

    max()相似,见上例

  • sorted()

    按指定方式排序

        public static void main(String[] args) {
            List<String> strings = new ArrayList<String>() {
                {
                    add("test1");
                    add("test2");
                    add("test3");
                    add("test4");
                }
            };
            strings.stream()
                    .sorted((s1, s2) -> {
                        return s1.compareTo(s2);
                    }).forEach(s -> System.out.print(s + " "));
      
        }
    
  • mapToInt()

    将元素映射成一个整型

        public static void main(String[] args) {
            List<String> strings = new ArrayList<String>() {
                {
                    add("test1");
                    add("test2");
                    add("test3");
                    add("test4");
                }
            };
            strings.stream()
                    .mapToInt(s -> {
                        return s.charAt(4) - '0';
                    })
                    .forEach(i -> {
                        System.out.print(i + " ");
                    });
        }
    
  • toArray

    将流转化为一个数组

        public static void main(String[] args) {
            List<String> strings = new ArrayList<String>() {
                {
                    add("test1");
                    add("test2");
                    add("test3");
                    add("test4");
                }
            };
            int[] a = strings.stream()
                    .mapToInt(s -> {
                        return s.charAt(4) - '0';
                    })
                    .toArray();
            for (int i : a) {
                System.out.print(i + " ");
            }
        }
    
??正文结束??
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值