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

时间:2013-07-24 08:02:26

标签: java

我正在尝试使用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);

4 个答案:

答案 0 :(得分: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 :(得分: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");

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

String[] allArrays = ArrayUtils.addAll(ArrayUtils.addAll(ArrayUtils.addAll(str1, str2), ArrayUtils.addAll(str3, str4)), ArrayUtils.addAll(str5,str6));