首页 > 解决方案 > 比较父列表结构中的嵌套列表以获取 java 中特定索引中的值

问题描述

给定以下格式的列表列表:

列表<列表<字符串、字符串、大整数、字符串、字符串、字符串、字符串、字符串、字符串>>行

遍历每个列表以搜索与 [1] 和 [2] 的任何其他行的值匹配的 [1](员工 ID 的字符串)和 [2](帐户 ID 的大整数)索引的重复值的最佳方法是什么] 在列表中

因此,如果存在帐户 ID 和员工 ID 重复的行,可以执行操作吗?

标签: javalistcollectionsiterationnested-lists

解决方案


我假设我得到了结构的含义如下:

List< Row >Row您创建的要管理的类在哪里List<String, String, BigInteger, String, String, String, String, String, String>

在这种情况下,您可以覆盖equals()此类中的方法以匹配您的“重复”值。

class Row {
    ...
    @Override
    public boolean equals(Object o) {
        if (o instanceof Row) {
            return account.equals(((Row)o).getAccount())
                && employee.equals((Row)o).getEmployee());
        }
        return false;
    }
}

然后在您的主列表中,您可以应用其中一种算法来查找重复项。如 [ https://crunchify.com/java-how-to-find-duplicate-elements-from-list/]。一个例子可能是:

void processDuplicates (List<Row> list) {
    Set<Row> already = new HashSet<>();
    for (Row row : list) {
        if (already.contains(row)) {
            // row is duplicated
            // do something
        } else {
            already.add(row);
        }
    }
}

推荐阅读