package com.weigu.xiaochuang.project;
import com.google.common.collect.Lists;
import sun.dc.path.PathError;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Data {
private static List<PersonModel> lists = null;
//当类启动的时候就加载:加载到内存当中去
//1.利用static关键字
//2.利用postConstrutor注解
static {
PersonModel wu = new PersonModel("wu qi", 18, "男");
PersonModel zhang = new PersonModel("zhang san", 19, "男");
PersonModel wang = new PersonModel("wang si", 20, "女");
PersonModel zhao = new PersonModel("zhao wu", 20, "男");
PersonModel chen = new PersonModel("chen liu", 21, "男");
lists = Arrays.asList(wu, zhang, wang, zhao, chen);
//1.此处可以利用guava进行创建
//2.可以利用Collections类进行创建
}
public static List<PersonModel> getData() {
return lists;
}
/**
* filter ----判断集合中的泛型对应的对象的某个属性值;
*/
public static void filterSex() {
List<PersonModel> data = Data.getData();
//定以一个存储数据的集合
ArrayList<PersonModel> personModels = Lists.newArrayList();
//jdk1.7以前
for (PersonModel personModel : data) {
//此处的"男"可以通过枚举类型进行获取,这样可以是代码看起来更加整洁一点
if ("男".equalsIgnoreCase(personModel.getSex())) {
personModels.add(personModel);
}
}
//jdk1.8
List<PersonModel> list = data.stream()
.filter(personModel -> {
return "男".equalsIgnoreCase(personModel.getSex());
})
.collect(Collectors.toList());
}
/**
* 过滤所有男性,并且年龄小于20岁
*/
public static void filterSexAndAge() {
List<PersonModel> data = Data.getData();
//jdk1.7
List<PersonModel> temp = new ArrayList<>();
for (PersonModel person : data) {
if ("男".equals(person.getSex()) && person.getAge() < 20) {
temp.add(person);
}
}
//jdk1.8
data.stream()
.filter(personModel -> {
return personModel.getAge() < 20 && "男".equalsIgnoreCase(personModel.getSex());
})
.collect(Collectors.toList());
}
}
java8-filter
猜你喜欢
转载自blog.csdn.net/wb_zjp283121/article/details/89045217
今日推荐
周排行