如何比较具有不同列表大小的列表对象字段

时间:2019-06-04 16:55:16

标签: java list string-comparison

尝试了几种方法来比较带有对象字段的不同对象列表之间,例如,一个列表包含DeviceRow.ip,另一个列表包含Device.ip

我试图在两个列表上运行,其中较短的列表位于外部for循环中,以便遍历整个列表项。

这是我尝试过的代码的实现:

 private boolean compareDeviceRowFields(DeviceRow[] deviceRowsArr) {
        try {
            List<DeviceRow> deviceRowList = Arrays.asList(deviceRowsArr);
            if (deviceRowList.size() > devicesLstFromJson.size()) {
                for (DeviceRow deviceRow : deviceRowList) {
                    boolean found = false;
                    for (Device device : devicesLstFromJson) {
                        if (checkFields(deviceRow.deviceIp, device.ip)) {
                            info("Device Row ip is =[%s]", deviceRow.deviceIp);
                            info("Device json file ip is =[%s]", device.ip);
                            if (checkFields(deviceRow.vendor, device.vendor)) {
                                found = true;
                                break;
                            }
                        }
                    }
                    if (!found) {
                        return false;
                    }
                }
            }
        } catch (Exception e) {
            info(e.getMessage());
        }
        return true;
    } 

预期结果为true,如果较短列表包含较长列表中的所有项目,则为false。 我也想为这个问题找到更优雅的解决方案。

0 个答案:

没有答案