我有一个二维字符串数组:
String myTwoD[][] = {{"Apple", "Banana"}, {"Pork", "Beef"}, {"red",
"green","blue","yellow"}};如何将其转换为一维字符串数组,在JAVA中如下所示:
OneD[]={"Apple", "Banana","Pork", "Beef","red", "green","blue","yellow"};ArrayUtils可以用于此吗?
下面是我的数组的代码,我试图将所有值存储到一个多页表列中,以便进行排序。
for (i=0;i<pagecount; i++)
{
for (j=0;j<columncount;j++)
{
array[i][j]= t.getcolumnname().get(j).getText();
}
}发布于 2018-11-02 04:01:22
有很多种方法可以做到这一点,一种方法是首先将2D数组的内容存储到列表中,然后使用它将元素存储在新的一维数组中。
在代码中,如下所示:
//arr being your old array
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
list.add(arr[i][j]);
}
}
// now you need to add it to new array
String[] newArray = new String[list.size()];
for (int i = 0; i < newArray.length; i++) {
newArray[i] = list.get(i);
}发布于 2018-11-02 04:25:14
我发现的最简单的方法是使用流。
String myTwoD[][] = { { "Apple", "Banana" }, { "Pork", "Beef" }, { "red", "green", "blue", "yellow" } };
List<String[]> list = Arrays.asList(myTwoD);
list.stream().flatMap(num -> Stream.of(num)).forEach(System.out::println);将结果存储到一维数组中。这样做:
String arr[] = list.stream().flatMap(num -> Stream.of(num)).toArray(String[]::new);
for (String s : arr) {
System.out.println("Array is = " + s);
}发布于 2018-11-02 04:30:29
尝尝这个。
String myTwoD[][] = {{"Apple", "Banana"}, {"Pork", "Beef"},{"red", "green","blue","yellow"}};
List<String> lt = new ArrayList<String>();
for (String[] oneDArray : myTwoD) { //loop throug rows only
lt.addAll(Arrays.asList(oneDArray));
}
String[] oneDArray =(String[])lt.toArray(new String[0]); //conversion of list to array
System.out.println(Arrays.toString(oneDArray)); //code for printing arrayhttps://stackoverflow.com/questions/53112504
复制相似问题