无法使用apache commons ArrayUtils将多个String数组添加到数组中

问题描述 投票:1回答:4

我正在尝试使用apache commons ArrayUtils将多个String数组添加到单个数组中,如下所示,但是它说无法将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);
java
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


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");

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


0
投票

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


0
投票

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

String[] allArrays = ArrayUtils.addAll(ArrayUtils.addAll(ArrayUtils.addAll(str1, str2), ArrayUtils.addAll(str3, str4)), ArrayUtils.addAll(str5,str6));
© www.soinside.com 2019 - 2024. All rights reserved.