如何将Stream转换为IntStream

时间:2017-12-09 18:06:33

标签: java-8 java-stream

我想实现一个名为youngWinners的静态方法,给定Stream<Winner>返回一个new Stream<Winner>,其中包含年龄小于35的获胜者,按字母顺序排序。

在我的文件中,我有:索引,年份,年龄,姓名,电影。

我的问题是,我不知道如何将Stream转换为IntStream以将年龄与35进行比较。我也有点困惑,我是否必须使用比较器来这样做与否?

public static Stream<Winner> youngWinners(Stream<Winner> young) {
    //  Stream<Winner> youngWin = young;
    String[] toString = young.toArray(s -> new String[s]);
    Arrays.stream(toString).flatMap((<any> f) -> {
        try {
            return Files.lines(Paths.get(f))
                    .filter(age -> int (age) <= 35 )
                    .mapToInt(a -> a.getWinnerage())
                    .map(WinneropsDB::new);                                                    
        } catch (Exception e) {                
            System.out.println("error");
            return null;
        }
    });
    return null;
}

1 个答案:

答案 0 :(得分:0)

你根本不需要IntStream

简单地说:

return young.filter(w -> w.getAge() < 35)
            .sorted(Comparator.comparing(Winner::getName));