当前位置: 首页 > 后端技术 > Java

Java8Stream应用场景

时间:2023-04-01 18:01:29 Java

应用一:当需要将Model类中的某个属性(比如数字no)与实体类一一匹配时,需要的Model实体模型,(k1,k2)即可通过数字快速找到)->k1这意味着如果有一个实体具有相同的键,则取前一个。//模型可以自定义Listmodels;Mapmap=models.stream().collect(Collectors.toMap(Model::getNo,model->model,(k1,k2)->k1));如果需要过滤掉满足要求的key相同的两个entity中的一个,可以这样做:value->value,(k1,k2)->no.equals(k1.getNo())?k1:k2这里的意思是如果两个entity有相同的key,取key对应的model等于no。Stringno;Listmodels;Mapmap=models.溪流()。collect(Collectors.toMap(Model::getNo,value->value,(k1,k2)->no.equals(k1.getNo())?k1:k2));应用二:获取所有某些属性值从模型列表(示例中没有)形成SetListmodels;SetstringSet=models.stream().map(Model::getNo).collect(Collectors.toSet());应用三:可以看作是对应用二的补充,如果我们需要过滤掉模型中编号不在Setnos中的模型,那么可以使用Filter过滤形成ListSetnos;Listmodels;Listres=models.stream().filter(model->!nos.contains(model.getNo())).collect(Collectors.toList());