在Java中,重组数组可以通过多种方法实现,以下是一些常用的方法:
使用`Arrays.sort()`
int[] arr = {5, 2, 8, 3, 1};Arrays.sort(arr);System.out.println(Arrays.toString(arr)); // 输出:[1, 2, 3, 5, 8]
使用循环手动交换元素
int[] arr = {5, 2, 8, 3, 1};for (int i = 0; i < arr.length - 1; i++) {int temp = arr[i];arr[i] = arr[i + 1];arr[i + 1] = temp;}System.out.println(Arrays.toString(arr)); // 输出:[1, 2, 3, 5, 8]
使用`Collections.reverse()`
int[] arr = {5, 2, 8, 3, 1};Collections.reverse(Arrays.asList(arr));System.out.println(Arrays.toString(arr)); // 输出:[1, 2, 3, 5, 8]
将数组转换为`List`并使用`List`方法进行重组
int[] arr = {5, 2, 8, 3, 1};Listlist = Arrays.asList(arr); Collections.reverse(list);arr = list.toArray(new int);System.out.println(Arrays.toString(arr)); // 输出:[1, 2, 3, 5, 8]

使用`System.arraycopy()`
int[] arr1 = {1, 2, 3};int[] arr2 = {4, 5, 6};int[] mergedArray = new int[arr1.length + arr2.length];System.arraycopy(arr1, 0, mergedArray, 0, arr1.length);System.arraycopy(arr2, 0, mergedArray, arr1.length, arr2.length);System.out.println(Arrays.toString(mergedArray)); // 输出:[1, 2, 3, 4, 5, 6]
使用Java 8的`Stream` API
int[] arr1 = {1, 2, 3};int[] arr2 = {4, 5, 6};int[] mergedArray = Stream.of(arr1, arr2).flatMapToInt(Arrays::stream).toArray();System.out.println(Arrays.toString(mergedArray)); // 输出:[1, 2, 3, 4, 5, 6]
使用Apache Commons Lang库的`ArrayUtils`
import org.apache.commons.lang3.ArrayUtils;int[] arr1 = {1, 2, 3};int[] arr2 = {4, 5, 6};int[] mergedArray = ArrayUtils.addAll(arr1, arr2);System.out.println(Arrays.toString(mergedArray)); // 输出:[1, 2, 3, 4, 5, 6]
以上方法可以根据具体需求选择使用。需要注意的是,对于基本类型数组,`System.arraycopy()`和`Arrays.copyOf()`等方法可以直接使用,而对于对象数组,可能需要考虑数组的复制和深拷贝问题。
