Java 8 如何将Stream转换为IntStream
我想实现一个名为Java 8 如何将Stream转换为IntStream,java-8,java-stream,Java 8,Java Stream,我想实现一个名为youngWinners的静态方法,该方法给定一个流返回一个新流,其中包含35岁以下的获奖者,按字母顺序排列 在我的文件中,我有:索引、年份、年龄、姓名、电影 我的问题是,我不知道如何将Stream转换为IntStream来比较35岁的年龄。我也有点困惑,我是否必须使用比较器来做这件事 public static Stream<Winner> youngWinners(Stream<Winner> young) { // Stream<Wi
youngWinners
的静态方法,该方法给定一个流
返回一个新流
,其中包含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;
}
publicstaticstreamyoungwinners(streamyoung){
//流youngWin=年轻;
字符串[]toString=young.toArray->新字符串];
Arrays.stream(toString).flatMap((f)->{
试一试{
返回文件.line(path.get(f))
.filter(age->int(age)a.getWinnerage())
.map(WinneropsDB::新建);
}捕获(例外e){
System.out.println(“错误”);
返回null;
}
});
返回null;
}
您根本不需要IntStream
简单地做:
return young.filter(w -> w.getAge() < 35)
.sorted(Comparator.comparing(Winner::getName));
return young.filter(w->w.getAge()<35)
.sorted(Comparator.comparing(Winner::getName));
Winner类应该实现Comparable,实现的compareTo方法应该比较名称,可以使用常规的.stream()方法获取Winners数组/集合的流,调用.filter()获取35岁以上的人,然后调用sort()。它将隐式实现compareTo,最后打印结果。另外,您的代码很难看,很抱歉,我只是想说:D,但您会变得更好,不要放弃。谢谢您的回答,因为我是java初学者,我在java方面没有任何经验:D但我会努力做得更好;-)你能帮我怎么让我的代码变得漂亮吗?也许我不太理解流的意思。无论如何,谢谢:-)