【问题标题】:Java 2D string or arraylist?Java 2D 字符串或数组列表?
【发布时间】:2016-09-05 21:57:34
【问题描述】:

我有一个字符串数据集如下:

第 1 行:“abc”、“def”、“ghi”

第 2 行:“xyz”

第 3 行:“lmn”、“opq”、“rst”、“uvw”

首先,我想遍历每一行和每一列并在窗口中输出值。

我不知道该怎么做,因为每一行都有不同的列数。

谁能告诉我用java初始化这个数据集的最佳方法是什么?

谢谢

问候

【问题讨论】:

  • 先说你想做什么。从头到尾,都是英文的。然后继续讨论如何实现它。
  • 我会假设它是List<List<String>> 而不仅仅是ArrayList。但是,具体情况取决于许多其他要求。
  • 在我的主函数中,我想使用 for 循环中每一行的大小来循环行和列,并将其输出到一个窗口。我不确定如何初始化它,因为每一行都有不同的列数。
  • 您是在读取 TXT 文件吗?
  • 丹尼尔。我不是从文本文件中读取。这是一个简单的代码,我想在我的程序开始时初始化这个二维字符串。

标签: java arraylist multidimensional-array


【解决方案1】:

选项 1:

    List<String[]> dataSet = new ArrayList<String[]>();

    dataSet.add(new String[] { "abc", "def", "ghi" });
    dataSet.add(new String[] { "xyz" });
    dataSet.add(new String[] { "lmn", "opq", "rst", "uvw" });

选项 2:

如果事先知道行数,也可以这样做:

    int numRows = 3; //if you know the number of rows in advance
    String[][] dataSet2 = new String[numRows][]; 

    dataSet2[0] = new String[] { "abc", "def", "ghi" };
    dataSet2[1] = new String[] { "xyz" };
    dataSet2[2] = new String[] { "lmn", "opq", "rst", "uvw" };

【讨论】:

    【解决方案2】:
    First you need to decide how to parse your strings, are they different 1D arrays or all in a 2D array?  You could make a 2D array length the size of the largest array and test for nulls in the shorter ones... your simple loop would look something like this:
    <code>
    for (int i=0; i < 3; i++) { 
        for (int j=0; j< currentArray.length && currentArray[j] != NULL; j++) { 
            System.out.println(currentArray[i][j]);
        }
    }
    </code>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-15
      • 2012-02-18
      • 2018-06-12
      • 1970-01-01
      • 1970-01-01
      • 2011-08-20
      相关资源
      最近更新 更多