栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

关于java8中stream流的使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于java8中stream流的使用

1、普通的sorted排序(按照数值正序排序,从小到大)

List integers = new ArrayList<>();
        integers.stream().sorted().collect(Collectors.toList());

2、实体类的sorted排序(先根据课程名称排序,如果课程名称一样,再根据课程码排序)

courseModels.stream().sorted(
Comparator.comparing(CourseModel::getName).thenComparing(CourseModel::getCode))
.collect(Collectors.toList());

3、复杂的排序(集合中包含集合,先通过子集合的第一个元素排序,相同时再根据其他属性排序)

courseModels = courseModels.stream().sorted((c1, c2) -> {
            Integer c1Term = c1.getCourseTerms().get(0).getTerm();
            Integer c2Term = c2.getCourseTerms().get(0).getTerm();
            if (c1Term.equals(c2Term)) {
                return c1.getCode().compareTo(c2.getCode());
            }
            if (c1Term < c2Term) {
                return -1;
            }
            return 1;
        }).collect(toList());

4、将集合通过指定key,value转换为map

List.stream().collect(Collectors.toMap(User::getId, User::getName));
//id为key,name为value

5、stream求平均值

double average1 = doubleList.stream().collect(Collectors.averagingDouble(Double::doublevalue));
     System.out.println("平均值:" + average1);



list.stream().mapToDouble(User::getAge).average().getAsDouble();


6、stream求最大值、和

//求和
answerModelList.stream().mapToDouble(model -> model.getUserScore() == null ? 0.0 : model.getUserScore()).sum()
//最大值
answerModelList.stream().mapToLong(model -> model.getSubmitTime()).max().getAsLong();

7、allMatch、anyMatch、noneMatch

public static void main(String[] args) {

    List list = Arrays.asList(1, 2, 1, 1, 1);
    
    boolean anyMatch = list.stream().anyMatch(f -> f == (1));
    boolean allMatch = list.stream().allMatch(f -> f == (1));
    boolean noneMatch = list.stream().noneMatch(f -> f == (1));
    long count = list.stream().filter(f -> f == (1)).count();
    
    System.out.println(anyMatch);  // true
    System.out.println(allMatch);  // false
    System.out.println(noneMatch); // false
    System.out.println(count);     // 4
}

// anyMatch任何一个元素满足判断条件返回true
// allMatch所有元素满足判断条件返回true
// noneMatch没有一个元素满足判断条件返回true

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/768808.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号