有四种方法可以删除 Java 数组中的一列数据:使用 system.arraycopy() 复制数组的每一行,跳过要删除的列。使用 guava 库遍历每一行并过滤掉要删除的列。使用 apache commons lang 库直接移除列。手动遍历数组并重新构造一个新数组,排除要删除的列。
如何删除 Java 数组中一列数据
要删除 Java 数组中一列数据,有几种方法:
1. 使用 System.arraycopy()
int[][] arr = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; int[][] newArr = new int[arr.length - 1][]; // 复制数组的每一行,跳过要删除的列 for (int i = 0; i < arr.length; i++) { newArr[i] = new int[arr[i].length - 1]; System.arraycopy(arr[i], 0, newArr[i], 0, arr[i].length - 1); }
2. 使用 guava 库
立即学习“Java免费学习笔记(深入)”;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList.Builder; int[][] arr = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; Builder<ImmutableList<ImmutableList<Integer>>> builder = ImmutableList.builder(); // 遍历每一行并过滤掉要删除的列 for (ImmutableList<Integer> row : ImmutableList.copyOf(arr)) { builder.add(ImmutableList.copyOf(row.subList(0, row.size() - 1))); } ImmutableList<ImmutableList<Integer>> newArr = builder.build();
3. 使用 apache Commons Lang 库
import org.apache.commons.lang3.ArrayUtils; int[][] arr = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; int[][] newArr = ArrayUtils.removeColumns(arr, 1);
4. 手动遍历并重构数组
int[][] arr = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; int[][] newArr = new int[arr.length][arr[0].length - 1]; // 遍历每一行并创建新数组 for (int i = 0; i < arr.length; i++) { for (int j = 0; j < newArr[i].length; j++) { if (j < arr[i].length - 1) { newArr[i][j] = arr[i][j]; } } }