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()));
经验分享 程序员 微信小程序 职场和发展