如何在Java中逐行读取数组集?

如何在Java中逐行读取数组集?,java,arrays,arraylist,Java,Arrays,Arraylist,我的代码如下: private static ArrayList<String[]> file; ... void method() { file = new ArrayList<String[]>(); ... String[] s = str.split(";"); file.add(s); } 私有静态数组列表文件; ... void方法() { file=newarraylist(); ... 字符串[]s=str.split(“;”); 文

我的代码如下:

private static ArrayList<String[]> file;

...

void method()
{
  file = new ArrayList<String[]>();
  ...
  String[] s = str.split(";");
  file.add(s);
}
私有静态数组列表文件;
...
void方法()
{
file=newarraylist();
...
字符串[]s=str.split(“;”);
文件。添加;
}
在上面的例子中,
str
是一个用分号分隔的长字符串

我的问题是我想遍历
ArrayList
中的每个数组,并从每个数组中获取一个元素

例如,如果一个数组是
“hello;are;today”
,另一个数组是
“how;you;”
,那么我想将其检索为
“hello how you today”
(即每个数组中的一个元素)

我想不出一个办法

任何帮助都将不胜感激


提前谢谢

这并不太难——假设所有行的大小都相同

int currentIndex = 0;
StringBuilder b = new StringBuilder();
boolean arraysHaveMoreElements = true;
while (arraysHaveMoreElements) {
    arraysHaveMoreElements = false;
    for (String[] array : file) {
        if (array.length > currentIndex) {
            b.append(array[currentIndex];
            arraysHaveMoreElements = true;
        }
    }
    currentIndex++;
}
private void dumpColumnwise() {

  // generate test input
  // String[] firstRow = {"a00", "a01", "a02"};
  // String[] secondRow = {"a10", "a11", "a12"};
  String[] firstRow = "a00;a01;a02".split(";");
  String[] secondRow = "a10;a11;a12".split(";");

  List<String[]> rows = new ArrayList<String[]>();
  rows.add(firstRow);
  rows.add(secondRow);

  // get longest row
  int numberOfColumns = 0;
  for (String[] row:rows) {
    numberOfColumns = Math.max(numberOfColumns, row.length);
  }

  int numberOfRows = rows.size();
  for (int column = 0; column < numberOfColumns; colunm++) {
    for (int row = 0; row < numberOfRows; row++) {
      String[] row = rows.get(row);
      if (column < row.length) {
        System.out.printf(" %s", rows.get(row)[column]);
      }
    } 
  }
}
private void dumpColumnwise(){
//生成测试输入
//字符串[]第一行={“a00”、“a01”、“a02”};
//字符串[]第二行={“a10”、“a11”、“a12”};
字符串[]firstRow=“a00;a01;a02”。拆分(;”;
字符串[]secondRow=“a10;a11;a12”。拆分(;”;
列表行=新建ArrayList();
行。添加(第一行);
行。添加(第二行);
//排得最长
int numberOfColumns=0;
for(字符串[]行:行){
numberOfColumns=Math.max(numberOfColumns,row.length);
}
int numberOfRows=rows.size();
for(int column=0;column

改进空间:允许输入不同行长度的数据。在这种情况下,您必须(1)确定最长的行,并(2)测试列索引是否对实际行有效。。。完成。

要读取数组列表,我们可以使用迭代器接口。` 使用迭代器,我们可以遍历数组列表。 这只是一个示例代码

public static void  main(String []args)
   {
      ArrayList<String[]>  list=new ArrayList<>();
      String arr1[]={"hello","are","today"};
        String arr2[]={"how","you"};
        list.add(arr1);
        list.add(arr2);
       Iterator<String[]> it = list.iterator();
         while(it.hasNext())
         {
             String[] temp=it.next();
             System.out.print(temp[0]+" ");

         }



   }`
publicstaticvoidmain(字符串[]args)
{
ArrayList=新建ArrayList();
字符串arr1[]={“你好”,“是”,“今天”};
字符串arr2[]={“如何”,“您”};
列表。添加(arr1);
列表。添加(arr2);
Iterator it=list.Iterator();
while(it.hasNext())
{
字符串[]temp=it.next();
系统输出打印(温度[0]+“”);
}
}`

输出=你好如何

您确定ArrayList应该包含字符串数组吗?这实际上转化为一个二维字符串列表。