stream 两个集合比较 取出差集

代码如下:

package com.example.demo.test;


import org.apache.catalina.LifecycleState;
import org.apache.commons.compress.utils.Lists;

import java.util.List;
import java.util.stream.Collectors;

/**
 * 两个集合比较 取出差集
 */
public class streamTest2 {

    public static void main(String[] args) {
        List<GoodModel> goodModelList=getGoodModelList();
        List<GoodVo> goodVoList=getGoodVoList();
        //比较两个集合,去除goodVoList中包含goodModelList的商品
        List<GoodVo> goodVos=goodVoList.stream().filter(p ->
                !goodModelList.stream()
                        .map(b ->b.getNumber()).collect(Collectors.toList())
                        .contains(p.getNumber())).collect(Collectors.toList());
        System.out.println("===== 过滤商品列表中已经销售的商品 =====");
        goodVos.stream().forEach(System.out::println);

    }

    public static List<GoodModel> getGoodModelList(){
        List<GoodModel> goodModelList= Lists.newArrayList();
        GoodModel goodModel=new GoodModel();
        goodModel.setNumber("10001");
        goodModel.setSerialNumber("X243");
        goodModel.setName("小米8SE");
        goodModel.setDescribe("8G运行内存 128G机身内存 不支持NFC");
        goodModel.setPrice("1899");
        GoodModel goodModel1=new GoodModel();
        goodModel1.setNumber("10002");
        goodModel1.setSerialNumber("X266");
        goodModel1.setName("小米8青春版");
        goodModel1.setDescribe("8G运行内存 128G机身内存 外形美观");
        goodModel1.setPrice("1999");
        GoodModel goodModel2=new GoodModel();
        goodModel2.setNumber("10003");
        goodModel2.setSerialNumber("X477");
        goodModel2.setName("小米8");
        goodModel2.setDescribe("8G运行内存 128G机身内存 外形美观 支持NFC");
        goodModel2.setPrice("1999");
        GoodModel goodModel3=new GoodModel();
        goodModel3.setNumber("10004");
        goodModel3.setSerialNumber("X499");
        goodModel3.setName("小米10");
        goodModel3.setDescribe("16G运行内存 256G机身内存 外形美观 支持NFC");
        goodModel3.setPrice("9999");
        goodModelList.add(goodModel);
        goodModelList.add(goodModel1);
        goodModelList.add(goodModel2);
        goodModelList.add(goodModel3);
        return goodModelList;
    }
    public static List<GoodVo> getGoodVoList(){
        List<GoodVo> goodVoList= Lists.newArrayList();
        GoodVo goodVo=new GoodVo();
        goodVo.setNumber("10001");
        goodVo.setSerialNumber("X243");
        goodVo.setName("小米8SE");
        goodVo.setDescribe("8G运行内存 128G机身内存 不支持NFC");
        goodVo.setPrice("1899");
        GoodVo goodVo1=new GoodVo();
        goodVo1.setNumber("10002");
        goodVo1.setSerialNumber("X266");
        goodVo1.setName("小米8青春版");
        goodVo1.setDescribe("8G运行内存 128G机身内存 外形美观");
        goodVo1.setPrice("1999");
        GoodVo goodVo2=new GoodVo();
        goodVo2.setNumber("10003");
        goodVo2.setSerialNumber("X477");
        goodVo2.setName("小米8");
        goodVo2.setDescribe("8G运行内存 128G机身内存 外形美观 支持NFC");
        goodVo2.setPrice("1999");
        GoodVo goodVo3=new GoodVo();
        goodVo3.setNumber("10006");
        goodVo3.setSerialNumber("XF77");
        goodVo3.setName("华为 not 8");
        goodVo3.setDescribe("8G运行内存 128G机身内存 外形美观 支持NFC");
        goodVo3.setPrice("2999");
        goodVoList.add(goodVo);
        goodVoList.add(goodVo1);
        goodVoList.add(goodVo2);
        goodVoList.add(goodVo3);
        return goodVoList;
    }

}

class GoodModel{

    private String number;

    private String name;

    private String SerialNumber;

    private String describe;

    private String price;

    private String img;

    private String imgDescribe;

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getSerialNumber() {
        return SerialNumber;
    }

    public void setSerialNumber(String serialNumber) {
        SerialNumber = serialNumber;
    }

    public String getDescribe() {
        return describe;
    }

    public void setDescribe(String describe) {
        this.describe = describe;
    }

    public String getPrice() {
        return price;
    }

    public void setPrice(String price) {
        this.price = price;
    }

    public String getImg() {
        return img;
    }

    public void setImg(String img) {
        this.img = img;
    }

    public String getImgDescribe() {
        return imgDescribe;
    }

    public void setImgDescribe(String imgDescribe) {
        this.imgDescribe = imgDescribe;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
class GoodVo{

    private String number;

    private String name;

    private String SerialNumber;

    private String describe;

    private String price;

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getSerialNumber() {
        return SerialNumber;
    }

    public void setSerialNumber(String serialNumber) {
        SerialNumber = serialNumber;
    }

    public String getDescribe() {
        return describe;
    }

    public void setDescribe(String describe) {
        this.describe = describe;
    }

    public String getPrice() {
        return price;
    }

    public void setPrice(String price) {
        this.price = price;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "GoodVo{" +
                "number='" + number + '\'' +
                ", name='" + name + '\'' +
                ", SerialNumber='" + SerialNumber + '\'' +
                ", describe='" + describe + '\'' +
                ", price='" + price + '\'' +
                '}';
    }
}

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值