Java 8 确实可以减少很多代码量,看下面这个例子
public Set<String> findLongTracks(List<Album> albums){
Set<String> trackNames = new HashSet<>();
for (Album album: albums){
for (Track track: album.getTraceList()){
if (track.getLength() > 60){
String name = track.getName();
trackNames.add(name);
}
}
}
return trackNames;
}
------------------
public Set<String> findLongTracks(List<Album> albums) {
Set<String> trackNames = new HashSet<>();
albums.stream().flatMap(album -> album.getTraceList().stream()).
filter(track -> track.getLength() > 60).
map(track -> track.getName()).collect(Collectors.toSet());
return trackNames;
}
public Set<String> findLongTracks(List<Album> albums){
Set<String> trackNames = new HashSet<>();
for (Album album: albums){
for (Track track: album.getTraceList()){
if (track.getLength() > 60){
String name = track.getName();
trackNames.add(name);
}
}
}
return trackNames;
}
------------------
public Set<String> findLongTracks(List<Album> albums) {
Set<String> trackNames = new HashSet<>();
albums.stream().flatMap(album -> album.getTraceList().stream()).
filter(track -> track.getLength() > 60).
map(track -> track.getName()).collect(Collectors.toSet());
return trackNames;
}
展开
评论
点赞