java8 stream常用示例

package org.example;

import org.apache.commons.lang.StringUtils;

import java.util.Arrays;
import java.util.List;
import java.util.Comparator;
import java.util.stream.Collectors;

/**
 * @Author: swift
 * @CreateAt: 2022/09/16 17:11
 * @Description: Stream 示例
 */
public class Temp {
    public static void main(String[] args) {
        System.out.println("stream learning");

        String[] arr = {"123", "34", "23", "234"};
        // 遍历数组
        Arrays.asList(arr).forEach(System.out::println);
        // 将字符串数组转换为整数数组
        List<Integer> intList = Arrays.asList(arr)
                                .stream()
                                .map(ele -> Integer.parseInt(ele))
                                .collect(Collectors.toList());

        // 获取字符串数组中最大值:234
        Integer maxValue = Arrays.asList(arr)
                            .stream()
                            .map(ele -> Integer.parseInt(ele))
                            .max(Comparator.comparing(Integer::intValue))
                            .get();

        // 或者简写如下(求最小值):23
        Arrays.asList(arr)
                .stream()
                .mapToInt(ele->Integer.parseInt(ele))
                .min()
                .ifPresent(minValue -> System.out.println("Min: " + minValue));

// 复杂的对象求最大值
//        users.stream()
//                .max(Comparator.comparing(u -> u.getUserName()))
//                .ifPresent(e -> System.out.println("Max: " + e.getUserName()));

        // 过滤非数字字符串,并将剩下的数字字符串排序然后输出:12,24,45,231,2342
        String[] data = {"231", "", "as", "12", "3453", "asd", "24", "2342", "45"};
        Arrays.asList(data)
                .stream()
                .filter(ele -> !ele.isEmpty() && StringUtils.isNumeric(ele))
                .map(ele -> Integer.parseInt(ele))
                .sorted()
                .limit(5)
                .forEach(System.out::println);
    }
}



参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值