"合并两个整数数组"
"合并两个整数数组"
这个问题已经有答案了:
是否有一种方法将两个数组合并成一个单一的数组? 例如
int[] array1 = {1,2,3}; int[] array2 = {4,5,6}; int[] array1and2 = array1 + array2;
admin 更改状态以发布 2023年5月21日
这里是一个使用可变参数的简单函数:
final static public int[] merge(final int[] ...arrays ) { int size = 0; for ( int[] a: arrays ) size += a.length; int[] res = new int[size]; int destPos = 0; for ( int i = 0; i < arrays.length; i++ ) { if ( i > 0 ) destPos += arrays[i-1].length; int length = arrays[i].length; System.arraycopy(arrays[i], 0, res, destPos, length); } return res; }
使用方法:
int[] array1 = {1,2,3}; int[] array2 = {4,5,6}; int[] array3 = {7,8,9}; int[] array1and2and3 = merge(array1, array2, array3); for ( int x: array1and2and3 ) System.out.print( String.format("%3d", x) );
你不能直接添加它们,你必须创建一个新数组,然后将每个数组复制到新数组中。您可以使用System.arraycopy 方法执行此复制。
int[] array1and2 = new int[array1.length + array2.length]; System.arraycopy(array1, 0, array1and2, 0, array1.length); System.arraycopy(array2, 0, array1and2, array1.length, array2.length);
无论array1和array2的大小如何,都可以使用此方法。