网站专业建设公司/小时seo
这是《java8函数式编程》第三章中的内容,学习了对流的几个操作后,对它们的组合使用进行练习。
1、目的:给定了构建模型,对传入参数专辑列表ArrayList<Album>进行过滤,找出时间长度>60的歌曲名称。
2、实现code:
package java8;import java.util.ArrayList;
import java.util.Set;
import java.util.stream.Collectors;/*** @Author: cxh* @CreateTime: 17/12/14 20:47* @ProjectName: JavaBaseTest* <测试类></>*/public class Test {public static void main(String[] args) {ArrayList<Album> albums=new ArrayList<>();int len=30;for(int i=0;i<5;i++){//nameString name="LiLy"+i;//tracksArrayList<Track> tracks=new ArrayList<>();tracks.add(new Track("John"+i,len+=10));//artistsArrayList<Artist> artists=new ArrayList<>();ArrayList<String> mems=new ArrayList<>();mems.add("lili"+i);mems.add("zhouxin"+i);mems.add("jimi"+i);Artist artist=new Artist("qiduobaihe"+i,mems,"china"+i);artists.add(artist);albums.add(new Album(name,tracks,artists));}//找出长度大于1的曲目Set<String> res=albums.stream().flatMap(album -> album.getTracks().stream()).filter(track -> track.getLength()>60).map(track -> track.getName()).collect(Collectors.toSet());for(String str:res)System.out.println(str);}
}
输出:
John3
John4
Process finished with exit code 0