规范之“用流中的Stream.Of(arr1,arr2)将两个集合合并”

案例:用流中的Stream.Of(arr1,arr2)将两个集合合并

    /**
     * 功能描述:
     *      两个对象集合添加到一起
     *      在用flatMap扁平化改为Stream<User>
     *      这样map中的item就是OccupyProduct对象了
     *      赋值后返回新对象,转为list
     *
     * @author wzw
     * @param
     */
    @Test
    public void testStreamOf() 
    {
        // 创建实验对象1
        User user1 = new User();
        user1.setId(1);
        
        // 创建实验对象2
        User user2 = new User();
        user2 .setId(2);
​
        // 创建实验集合对象1
        List<User> users1= Arrays.asList(user1 );
​
        // 创建实验集合对象2
        List<User> users2 = Arrays.asList(user2 );
        
        // 两个对象集合添加到一起,在用flatMap扁平化改为Stream<User>, 
        // 这样map中的item就是User对象了,赋值后返回新对象,转为list
        List<User> user= Stream.of(users1, users2)
                .flatMap(Collection::stream).map(item -> {
                    User user= new User();
                    user.setId(item.getId());
                    user.setName("wzw");
                    return user;
                }).collect(Collectors.toList());
​
        // 打印
        System.out.println("user = " + user);
    }

结果

user = [
    user(id=1,name=wzw), 
    user(id=2,name=wzw )
]

 

 

案例:用流中的Stream.Of(arr1,arr2)将两个数组合并

将两个int[] 转为List<Integer>

@Test
    public void suanfa42()
    {
        int[] a = {1, 2, 3, 4, 4};
        int[] b = {2, 3, 6};// 合并两个数组并排序
        List<Integer> integers = Stream.of(Arrays.stream(a).boxed(), Arrays.stream(b).boxed())
                .flatMap(item -> item).sorted().collect(Collectors.toList());
    }

 结果图

 

posted @ 2022-01-20 21:22  骚哥  阅读(410)  评论(0编辑  收藏  举报