首页 > 解决方案 > 从具有两个不同大小/长度的两个数组列表中获取相同值的索引

问题描述

我是 Java 新手,我想获得两个数组列表的相同值的索引,但是这两个数组列表的大小/长度不同。这是工作代码:

List<String> new_valueString = new ArrayList<>();
    List<String> new_fieldsString = new ArrayList<>();
    List<String> oldValueString = new ArrayList<>();
    List<String> oldFieldsString = new ArrayList<>();

  if (new_fieldsString.size() != 0 && new_valueString.size() != 0) {
        for (int l = 0; l < new_fieldsString.size(); l++) {
                if (new_fieldsString.get(l).equalsIgnoreCase(oldFieldsString.get(l))) {
                    field_index = l;
                    if (!new_valueString.get(field_index).contains(oldValueString.get(field_index))) {
                        ifUpdated = true;
                    } else {
                        ifUpdated = false;
                    }
                }
            }

    }

我想获取 new_fieldsString 和 oldFieldsString 之间相同值的索引,并使用该索引来比较 new_valueString 和 oldValueString。

标签: javaarraylist

解决方案


您好,您的第一个数组需要两个句子,第二个用于与短数组列表进行比较,当您发现条件为真时,不要忘记打破循环,如下所示:

List<String> new_valueString = new ArrayList<>();
    List<String> new_fieldsString = new ArrayList<>();
    List<String> oldValueString = new ArrayList<>();
    List<String> oldFieldsString = new ArrayList<>();

  if (new_fieldsString.size() != 0 && new_valueString.size() != 0) {
        for (int l = 0; l < new_fieldsString.size(); l++) {
           for (int m = 0; m < oldFieldsString.size(); m++) {
                if (new_fieldsString.get(l).equalsIgnoreCase(oldFieldsString.get(m))) {
                    if (!new_valueString.get(l).contains(oldValueString.get(m))) {
                        ifUpdated = true;
                    } else {
                        ifUpdated = false;
                    }
                    break;
                }
            }
        }
    }

推荐阅读