java - 2D ArrayList 在 Java 中查找列中的对象

标签 java arraylist

我有 2D ArrayList,我想找到位于第一列的字符串的索引。

arraylist.get(0).indexOf("My String") 返回位于第一行的字符串的索引。 但我想要这样的东西

arraylist.indexOf("MyString").get(0)

最佳答案

如果我理解正确,您想要找到其中一列具有给定值的行。

您可以做的一件事是转置整个表格,这意味着行变成列,列变成行。然后您就可以使用标准 Java 功能访问所有内容。但这可能有点矫枉过正,并且会假设每行具有相同数量的列。

相反,我建议像这样搜索它:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class JustADemo {

    public static void main(String[] args) {
        final List<List<String>> table = new ArrayList<>();
        table.add(Arrays.asList("R1 C1", "R1 C2", "R1 C3"));
        table.add(Arrays.asList("R2 C1", "R2 C2", "R2 C3"));
        table.add(Arrays.asList("R3 C1", "R3 C2", "R3 C3"));
        int i = findRowWhereColumnEquals(table, "R3 C2");
        if (i != -1) {
            System.out.println("R3 C2 can be found in row " + i + ".");
        } else {
            System.out.println("R3 C2 cound not be found.");
        }
    }

    private static int findRowWhereColumnEquals(List<List<String>> table, String value) {
        int i = 0;
        for (List<String> row : table) {
            if (row.contains(value)) {
                return i;
            }
            i++;
        }
        return -1;
    }
}

关于java - 2D ArrayList 在 Java 中查找列中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60315781/

相关文章:

java - Sonarlint投诉日志写入方法

java.sql.SQLException :[SQLITE_ERROR] SQL error or missing database (near “ID” :syntax error)

java - arrayList 的 equals 从未被调用过

java - 在 BST 的节点中存储数据

java - 使用自定义属性排序数组列表

java - 从 bufferedReader 到 arraylist 的字符串

java - 在 Java 中从 ArrayList 生成序列号

java - 在 Java 中实现一个类

java - 引用另一个类中的方法

java - 如何使用终端在一个命令中传递 2 个属性参数