
java中数组如何合并成一个数组
用户关注问题
我有两个Java数组,想要生成一个包含两个数组所有元素的新数组,该如何实现?
使用System.arraycopy方法合并数组
可以创建一个新的数组,大小为两个数组长度之和,然后通过System.arraycopy方法把第一个数组和第二个数组依次复制到新数组中。示例如下:
int[] array1 = {1, 2, 3};
int[] array2 = {4, 5, 6};
int[] mergedArray = new int[array1.length + array2.length];
System.arraycopy(array1, 0, mergedArray, 0, array1.length);
System.arraycopy(array2, 0, mergedArray, array1.length, array2.length);
我想将两个数组合并成一个数组,并且去除重复的元素,有什么方法吗?
使用Set集合去重后转换为数组
可以先将两个数组的元素放入一个Set集合中,Set集合会自动去除重复值。完成后,再将Set转换回数组,例如:
Integer[] array1 = {1, 2, 3};
Integer[] array2 = {2, 3, 4};
Set set = new HashSet<>();
set.addAll(Arrays.asList(array1));
set.addAll(Arrays.asList(array2));
Integer[] mergedUniqueArray = set.toArray(new Integer[0]);
有没有利用Java 8的Stream API来合并数组的简便方法?
通过Stream.concat方法合并数组流
可以将每个数组转换成Stream流,使用Stream.concat将多个流合并,再使用toArray收集回数组。例如:
int[] array1 = {1, 2, 3};
int[] array2 = {4, 5, 6};
int[] merged = IntStream.concat(Arrays.stream(array1), Arrays.stream(array2)).toArray();