0

我有以下结构-

    {
       String[][] array = null;
       array = getTable2C(Order order, v.get(i));
       return array;
    }

现在,我想添加一个新代码,我将在其中获得多个二维字符串数组,并且我想在方法结束时返回整个连接的二维字符串数组。

    String[][] array = null;
    Vector v = getVectorFromSC(Order order);

    for(int i=0;i<v.size();i++)
    {
       array = getTable2C(Order order, v.get(i));
       /*
       .
       . Some code to Concatenate multiple 2D array.
       . Something like, allArray = array +allArray;
       .
       */

    }
    return allArray;

如何实现这一目标?我尝试将 Array 转换为 Vector 并再次将 Vector 转换为数组(Vector 的 toArray() 方法)但是,它适用于一维数组。我不确定如何将其用于 2D 阵列。

4

3 回答 3

0

You can try something like this:

  1->Vector<String[][]> allArray =  new Vector<String[][]>(); //DEfine a Vector that can hold 2D array
  2-> allArray.add(array); //Inside for loop keep adding each 2D array to vector
  3-> return allArray //Returns a vector which element is 2D array
于 2013-06-19T08:24:44.607 回答
0

尝试这个:-

public String[][] yourMethod(){
String[][] array = new String[0][0];
    Vector v = getVectorFromSC(Order order);

    for(int i=0;i<v.size();i++)
    {
       String[][] tempArray = getTable2C(Order order, v.get(i));

       array = concat(array,tempArray);

    }
    return allArray;
}

public String[][] concat(String[][] a, String[][] b) {
                String[][] result = new String[a.length + b.length][];
                System.arraycopy(a, 0, result, 0, a.length);
                System.arraycopy(b, 0, result, a.length, b.length);
                return result;
}
于 2013-06-19T08:29:53.710 回答
0

这是使用 Java 流的有效解决方案

String[][] twoDarr = new String[][] {
  {"1", "1", "1"},
  {"2", "2", "2"},
  {"3", "3", "3"}
};

String str = Arrays.stream(twoDarr).map(oneDArr -> Arrays.stream(oneDArr).collect(Collectors.joining())).collect(Collectors.joining());

如果您需要将它用于非字符串数组,它看起来很相似。

int[][] twoDarr = new int[][] {
  {1, 1, 1},
  {2, 2, 2},
  {3, 3, 3}
};

String str = Arrays.stream(twoDarr).map(oneDArr -> Arrays.stream(oneDArr).mapToObj(Integer::toString).collect(Collectors.joining())).collect(Collectors.joining());

分隔符可以作为参数提供,例如逗号通过Collectors.joining(",")

于 2021-08-25T04:34:20.577 回答