说明
有两个list,分别是newList 和 oldList,快速取出两个 newList 中某个属性值相同的实体和不同的实体文章来源地址https://www.toymoban.com/news/detail-719238.html
代码
import lombok.Data;
import lombok.ToString;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
public class Main {
/**
*
* @param args
*/
public static void main(String[] args) {
List<Segment> newList = new ArrayList<Segment>();
Segment newO1 = new Segment();
newO1.setCouponNum("1");
newO1.setArrAirportCode("北京");
newO1.setDepAirportCode("山西");
newList.add(newO1);
Segment newO12 = new Segment();
newO12.setCouponNum("2");
newO12.setArrAirportCode("北京2");
newO12.setDepAirportCode("山西2");
newList.add(newO12);
Segment newO13 = new Segment();
newO13.setCouponNum("3");
newO13.setArrAirportCode("北京2");
newO13.setDepAirportCode("山西2");
newList.add(newO13);
List<Segment> oldList = new ArrayList<Segment>();
Segment oldO1 = new Segment();
oldO1.setCouponNum("1");
oldO1.setArrAirportCode("北京");
oldO1.setDepAirportCode("山西");
oldList.add(newO1);
Segment oldO12 = new Segment();
oldO12.setCouponNum("2");
oldO12.setArrAirportCode("北京2");
oldO12.setDepAirportCode("山西2");
oldList.add(oldO12);
Segment oldO13 = new Segment();
oldO13.setCouponNum("4");
oldO13.setArrAirportCode("北京2");
oldO13.setDepAirportCode("山西2");
oldList.add(oldO13);
//过滤出需要插入的数据,这里就是过滤多个不相同字段
List<Segment> collectOne = newList.stream().filter(newSeg -> {
for (Segment oldSeg : oldList) {
if (newSeg.getCouponNum().equals(oldSeg.getCouponNum())) {
return false;
}
}
return true;
}).collect(Collectors.toList());
//collect中就是需要插入的数据
System.out.println("newList中 couponNum 不相同的数据 = " + collectOne);
//过滤出需要插入的数据,这里就是过滤多个不相同字段
List<Segment> collectTwo = newList.stream().filter(newSeg -> {
for (Segment oldSeg : oldList) {
if (Objects.equals(newSeg.getCouponNum(),oldSeg.getCouponNum())) {
return true;
}
}
return false;
}).collect(Collectors.toList());
//collect中就是需要插入的数据
System.out.println("newList中 couponNum 相同的数据 = " + collectTwo);
}
}
@ToString
@Data
class Segment {
/** Coupon号 */
private String couponNum;
/** 起飞机场编码 */
private String depAirportCode;
/** 降落机场编码 */
private String arrAirportCode;
}
运行结果
newList中 couponNum 不相同的数据 = [
Segment(couponNum=3, depAirportCode=山西2, arrAirportCode=北京2)
]
newList中 couponNum 相同的数据 = [
Segment(couponNum=1, depAirportCode=山西, arrAirportCode=北京),
Segment(couponNum=2, depAirportCode=山西2, arrAirportCode=北京2)
]
文章来源:https://www.toymoban.com/news/detail-719238.html
到了这里,关于两个list中实体某个属性值相同的实体和不同的实体的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!