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