說明
有兩個(gè)list,分別是newList 和 oldList,快速取出兩個(gè) newList 中某個(gè)屬性值相同的實(shí)體和不同的實(shí)體文章來源地址http://www.zghlxwxcb.cn/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);
//過濾出需要插入的數(shù)據(jù),這里就是過濾多個(gè)不相同字段
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中就是需要插入的數(shù)據(jù)
System.out.println("newList中 couponNum 不相同的數(shù)據(jù) = " + collectOne);
//過濾出需要插入的數(shù)據(jù),這里就是過濾多個(gè)不相同字段
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中就是需要插入的數(shù)據(jù)
System.out.println("newList中 couponNum 相同的數(shù)據(jù) = " + collectTwo);
}
}
@ToString
@Data
class Segment {
/** Coupon號 */
private String couponNum;
/** 起飛機(jī)場編碼 */
private String depAirportCode;
/** 降落機(jī)場編碼 */
private String arrAirportCode;
}
運(yùn)行結(jié)果
newList中 couponNum 不相同的數(shù)據(jù) = [
Segment(couponNum=3, depAirportCode=山西2, arrAirportCode=北京2)
]
newList中 couponNum 相同的數(shù)據(jù) = [
Segment(couponNum=1, depAirportCode=山西, arrAirportCode=北京),
Segment(couponNum=2, depAirportCode=山西2, arrAirportCode=北京2)
]
文章來源:http://www.zghlxwxcb.cn/news/detail-719238.html
到了這里,關(guān)于兩個(gè)list中實(shí)體某個(gè)屬性值相同的實(shí)體和不同的實(shí)體的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!