可以使用Java 8的流操作和filter方法来过滤出meterDataList中含有meterDataWithLargerCaliber中meterId的数据。假设WmMeterData类中的meterId属性为int类型,可以按照以下步骤实现过滤:

  1. 创建一个新的List对象,用于存储过滤后的数据:
List<WmMeterData> filteredDataList = new ArrayList<>();
  1. 使用流操作和filter方法过滤出符合条件的数据:
filteredDataList = meterDataList.stream()
    .filter(data -> meterDataWithLargerCaliber.stream()
        .map(WmWaterMeter::getId)
        .collect(Collectors.toList())
        .contains(data.getMeterId()))
    .collect(Collectors.toList());

在上述代码中,使用stream()方法将meterDataList转换为流对象。然后,使用filter方法对每个WmMeterData对象进行过滤。在过滤条件中,使用stream()方法将meterDataWithLargerCaliber转换为流对象,并使用map方法提取每个WmWaterMeter对象的id属性。然后,使用collect方法将这些id属性收集到一个列表中。最后,使用contains方法检查WmMeterData对象的meterId属性是否在列表中,如果在,则保留该对象。

  1. filteredDataList中即为过滤后的数据。

完整代码示例:

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

public class Main {
    public static void main(String[] args) {
        List<WmWaterMeter> meterDataWithLargerCaliber = new ArrayList<>();
        List<WmMeterData> meterDataList = new ArrayList<>();
        List<WmMeterData> filteredDataList = new ArrayList<>();

        // 添加示例数据
        meterDataWithLargerCaliber.add(new WmWaterMeter(1));
        meterDataWithLargerCaliber.add(new WmWaterMeter(2));
        meterDataWithLargerCaliber.add(new WmWaterMeter(3));

        meterDataList.add(new WmMeterData(1));
        meterDataList.add(new WmMeterData(2));
        meterDataList.add(new WmMeterData(3));
        meterDataList.add(new WmMeterData(4));
        meterDataList.add(new WmMeterData(5));

        // 过滤出符合条件的数据
        filteredDataList = meterDataList.stream()
                .filter(data -> meterDataWithLargerCaliber.stream()
                        .map(WmWaterMeter::getId)
                        .collect(Collectors.toList())
                        .contains(data.getMeterId()))
                .collect(Collectors.toList());

        // 输出过滤后的数据
        for (WmMeterData data : filteredDataList) {
            System.out.println(data.getMeterId());
        }
    }
}

class WmWaterMeter {
    private int id;

    public WmWaterMeter(int id) {
        this.id = id;
    }

    public int getId() {
        return id;
    }
}

class WmMeterData {
    private int meterId;

    public WmMeterData(int meterId) {
        this.meterId = meterId;
    }

    public int getMeterId() {
        return meterId;
    }
}

输出结果为:

1
2
3

这表示meterDataList中的meterId为1、2、3的数据被成功过滤出来。

ListWmWaterMeter meterDataWithLargerCaliber;ListWmMeterData meterDataList;WmMeterData中有WmWaterMeter的id属性为meterId。过滤出meterDataList中含有meterDataWithLargerCaliber中meterId的数据

原文地址: https://www.cveoy.top/t/topic/i5WN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录