jdk1.8 stream() List集合常用方法

		//1.计算元素之和
		List<User> list = new ArrayList<>();
        list.add(new User(10,"zhangshan "));
        list.add(new User(11,"zhangshan "));
        list.add(new User(12,"zhangshan "));
        list.add(new User(13,"zhangshan "));
		
		//集合用法
		Integer a = list.stream().map(str -> str.getAge()).reduce(0,(v,b)->v+b);
		//数组用法
		int[] arrays = new int[]{1,2,3};
        //int arr = Arrays.stream(arrays).reduce(0,Integer::sum);
        int arr = Arrays.stream(arrays).reduce(0,(e,f) -> e+f);
        
        List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9);
        Integer sum = list.stream()
                .reduce(0, (x, y) -> x + y);
        System.out.println(sum);//计算集合中所有元素的总和

		
		//2.list for循环遍历
		List<User> list = new ArrayList<>();
        List<String> list2 = new ArrayList<>();
        User user = new User();
        user.setAge(1);
        user.setName("zhangsan");
        list.add(user);
        list.stream().forEach(str -> {
            list2.add(str.getName());
        });
        

		//3.只取某列作为数据list
		//如只取id列
		List<Integer> idList = list.stream().map(LogsDO::getId).collect(Collectors.toList());


		//4.list数据去重
		list=list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(()->new TreeSet<>(Comparator.comparing(Users::getMobile))),ArrayList::new));


		//5.对list中对象中某数据进行排序
		List<NurseHomeOrdersVo> waitReceiveOrder = new ArrayList<>();
		Collections.sort(waitReceiveOrder, new Comparator<NurseHomeOrdersVo>() {
                @Override
                public int compare(NurseHomeOrdersVo o1, NurseHomeOrdersVo o2) {
                    int i = o1.getDistance().intValue();
                    int i1 = o2.getDistance().intValue();
                    return i - i1;
                }
        });
		 

		//6.list转map
		List<User> list2 = new ArrayList<>(list1);
        Map<String, User> list2Map = list2.stream()
                .collect(Collectors.toMap(User::getName, Function.identity()));

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDK 1.8 Stream 是 Java 8 中引入的一种新型集合类型,可以让我们更方便地对集合进行操作。以下是 JDK 1.8 Stream 常用方法及场景示例: 1. filter() 方法:过滤集合中的元素 示例代码: ```java List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); List<Integer> result = list.stream().filter(x -> x > 3).collect(Collectors.toList()); ``` 这段代码会将集合中大于 3 的元素筛选出来,最终得到一个新的集合 [4, 5]。 2. map() 方法:对集合中的每个元素进行操作,并返回新的集合 示例代码: ```java List<String> list = Arrays.asList("apple", "banana", "orange"); List<String> result = list.stream().map(x -> x.toUpperCase()).collect(Collectors.toList()); ``` 这段代码会将集合中的每个元素转换成大写字母,并返回一个新的集合 ["APPLE", "BANANA", "ORANGE"]。 3. flatMap() 方法:将多个集合合并成一个集合,并去重 示例代码: ```java List<List<Integer>> list = Arrays.asList(Arrays.asList(1, 2), Arrays.asList(3, 4)); List<Integer> result = list.stream().flatMap(x -> x.stream()).distinct().collect(Collectors.toList()); ``` 这段代码会将多个集合合并成一个集合,并去除重复元素,最终得到一个新的集合 [1, 2, 3, 4]。 4. reduce() 方法:对集合中的元素进行归约操作 示例代码: ```java List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); int result = list.stream().reduce(0, (x, y) -> x + y); ``` 这段代码会对集合中的元素进行求和,最终得到结果 15。 5. sorted() 方法:对集合中的元素进行排序 示例代码: ```java List<Integer> list = Arrays.asList(5, 3, 1, 4, 2); List<Integer> result = list.stream().sorted().collect(Collectors.toList()); ``` 这段代码会对集合中的元素进行升序排序,最终得到一个新的集合 [1, 2, 3, 4, 5]。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值