Java 矩阵 动态行和列的实现方式
Java 矩阵动态行和列的实现方式有以下几种:
- 使用二维数组实现动态行和列 通过定义一个二维数组来表示矩阵,可以动态地增加和删除行和列。例如,要增加一行,可以使用如下代码:
int[][] matrix = new int[3][4]; // 原矩阵,3行4列
int[][] newMatrix = new int[4][4]; // 新矩阵,4行4列
System.arraycopy(matrix, 0, newMatrix, 0, matrix.length); // 复制原矩阵的前3行到新矩阵
matrix = newMatrix; // 将新矩阵赋值给原矩阵
同理,要增加一列,可以使用如下代码:
int[][] matrix = new int[3][4]; // 原矩阵,3行4列
int[][] newMatrix = new int[3][5]; // 新矩阵,3行5列
for (int i = 0; i < matrix.length; i++) {
System.arraycopy(matrix[i], 0, newMatrix[i], 0, matrix[i].length); // 复制原矩阵的每一行到新矩阵
}
matrix = newMatrix; // 将新矩阵赋值给原矩阵
- 使用 List<List
> 实现动态行和列 通过定义一个 List<List > 来表示矩阵,可以动态地增加和删除行和列。例如,要增加一行,可以使用如下代码:
List<List<Integer>> matrix = new ArrayList<>();
matrix.add(Arrays.asList(1, 2, 3, 4)); // 第1行
matrix.add(Arrays.asList(5, 6, 7, 8)); // 第2行
matrix.add(Arrays.asList(9, 10, 11, 12)); // 第3行
List<Integer> newRow = new ArrayList<>(Arrays.asList(13, 14, 15, 16)); // 新行
matrix.add(newRow); // 将新行添加到矩阵末尾
同理,要增加一列,可以使用如下代码:
List<List<Integer>> matrix = new ArrayList<>();
matrix.add(Arrays.asList(1, 2, 3, 4)); // 第1行
matrix.add(Arrays.asList(5, 6, 7, 8)); // 第2行
matrix.add(Arrays.asList(9, 10, 11, 12)); // 第3行
for (int i = 0; i < matrix.size(); i++) {
List<Integer> row = matrix.get(i);
row.add(4, i * 4 + 17); // 在每一行的第4个位置插入新元素
}
- 使用 Map<Integer, Map<Integer, Integer>> 实现动态行和列 通过定义一个 Map<Integer, Map<Integer, Integer>> 来表示矩阵,可以动态地增加和删除行和列。例如,要增加一行,可以使用如下代码:
Map<Integer, Map<Integer, Integer>> matrix = new HashMap<>();
matrix.put(0, new HashMap<Integer, Integer>() {{
put(0, 1);
put(1, 2);
put(2, 3);
put(3, 4);
}}); // 第1行
matrix.put(1, new HashMap<Integer, Integer>() {{
put(0, 5);
put(1, 6);
put(2, 7);
put(3, 8);
}}); // 第2行
matrix.put(2, new HashMap<Integer, Integer>() {{
put(0, 9);
put(1, 10);
put(2, 11);
put(3, 12);
}}); // 第3行
Map<Integer, Integer> newRow = new HashMap<Integer, Integer>() {{
put(0, 13);
put(1, 14);
put(2, 15);
put(3, 16);
}}; // 新行
matrix.put(matrix.size(), newRow); // 将新行添加到矩阵末尾
同理,要增加一列,可以使用如下代码:
Map<Integer, Map<Integer, Integer>> matrix = new HashMap<>();
matrix.put(0, new HashMap<Integer, Integer>() {{
put(0, 1);
put(1, 2);
put(2, 3);
put(3, 4);
}}); // 第1行
matrix.put(1, new HashMap<Integer, Integer>() {{
put(0, 5);
put(1, 6);
put(2, 7);
put(3, 8);
}}); // 第2行
matrix.put(2, new HashMap<Integer, Integer>() {{
put(0, 9);
put(1, 10);
put(2, 11);
put(3, 12);
}}); // 第3行
for (int i = 0; i < matrix.size(); i++) {
Map<Integer, Integer> row = matrix.get(i);
row.put(row.size(), i * 4 + 17); // 在每一行的末尾插入新元素
}
``
原文地址: https://www.cveoy.top/t/topic/fgAw 著作权归作者所有。请勿转载和采集!