Java中Stream流的一些操作

Java中的stream()流是一种新的API,它提供了一种高效且易于理解的方式来处理数据。

stream()流可以从集合、数组或I/O通道创建。一旦创建,stream()流就可以使用各种操作进行转换和过滤,最后收集到一个结果集合中。

下面是使用stream()流的例子:

package com.dy.revise;

import com.dy.domain.User;

import java.util.*;
import java.util.stream.Collectors;

public class ListStream {
    public static void main(String[] args) {
        List<User> userList = getUserList();
        test(userList);
    }

    public static List<User> getUserList() {
        List<User> userList = new ArrayList<>();
        userList.add(new User(1, "Jack", 18));
        userList.add(new User(2, "Jane", 17));
        userList.add(new User(3, "Tao", 16));
        userList.add(new User(4, "Geng", 13));
        userList.add(new User(5, "Shun", 66));
        return userList;
    }

    public static void test(List<User> userList) {
        // 遍历
        userList.forEach(e -> System.out.println("测试 test ===>>>" + e.toString()));
        // 过滤
        List<User> filterUsers = userList.stream().filter(user -> user.getAge() >= 18).collect(Collectors.toList());
        System.out.println("过滤用户: " + filterUsers);
        // 获取目标用户名称--map重组(先过滤再获取姓名集合)
        List<String> userNameList = userList.stream().filter(e -> e.getId() >= 3).map(User::getUserName).collect(Collectors.toList());
        System.out.println("获取用户名: " + userNameList);
        // 按照年龄递增
        List<User> sortUserList = userList.stream().sorted(Comparator.comparing(User::getAge).reversed()).collect(Collectors.toList());
        System.out.println("排序用户:" + sortUserList);
        Collections.reverse(sortUserList);
        System.out.println("排序-翻转用户: " + sortUserList);
        // 年龄最大的用户
        Optional<User> max = userList.stream().max(Comparator.comparing(User::getAge));
        if (max.isPresent()) {
            User maxAgeUser = max.get();
            System.out.println("年龄最大的用户: " + maxAgeUser);
        }
        // 根据ID转map,map的key为id
        Map<Integer, User> mapUser = userList.stream().collect(Collectors.toMap(User::getId, userItem -> userItem));
        System.out.println("list转map: " + mapUser);
        // 以ID分组
        Map<Integer, List<User>> mapUserList = userList.stream().collect(Collectors.groupingBy(User::getId));
        System.out.println("使用用户ID分组:" + mapUserList);
    }
}

Stream流的常用方法大全

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值