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;
}
展开
评论