1

我正在尝试使用 apache commons 将多个字符串数组添加到单个数组中ArrayUtils,如下所示,但它说无法将Serializable数组转换为String数组

// assigning strings arrays
String str1[] = {"hello"};
String str2[] = {"test1"};
String str3[] = {"test2"};
String str4[] = {"hello"};
String str5[] = {"test4"};
String str6[] = {"hello"};

//joining string arrays     
String[] allArrays = ArrayUtils.addAll(str1, str2, str3, str4, str5,str6);
4

4 回答 4

2

如果要连接多个包含多个值的数组,可以使用 Java 8 流在一行中完成。

String[] s1 = new String[]{"a", "b", "c"};
String[] s2 = new String[]{"d", "e", "f"};
String[] s3 = new String[]{"g", "h", "i"};

//one liner:
String[] result = Stream.of(s1, s2, s3).flatMap(Stream::of).toArray(String[]::new);

此技术取自mkyong.com

于 2018-01-05T09:07:41.280 回答
1

您可以通过ArrayUtils.addAll两种方式使用:

    String[] arr1 = {"Hello", "Bye"};
    String[] arr2 = {"Good", "Bad"};

    String[] usage1 = ArrayUtils.addAll(arr1, arr2);
    String[] usage2 = ArrayUtils.addAll(arr1, "New item", "Another item");

第一个参数是一个数组。第二个参数可以是要附加到第一个数组的数组或单个项目。

于 2013-07-24T08:20:34.800 回答
0

ArrayUtils.addAll(Object[] array1, Object[] array2)只接受两个参数并返回包含 array1 的所有元素和 array2 的所有元素的新数组。

于 2013-07-24T08:13:10.910 回答
0

您可以迭代地使用 ArrayUtils.addAll() ,但这会导致性能影响,因为每次创建数组的新副本时。

String[] allArrays = ArrayUtils.addAll(ArrayUtils.addAll(ArrayUtils.addAll(str1, str2), ArrayUtils.addAll(str3, str4)), ArrayUtils.addAll(str5,str6));
于 2019-03-13T07:22:59.143 回答