在Java中,如何将两个List集合转换成一个M*N矩阵的形式?
时间: 2024-12-22 21:13:03 浏览: 7
在Java中,将两个List集合转换为一个M*N矩阵(二维数组),你可以按照以下步骤操作:
首先,假设你有两个List,list1代表行数M,list2代表列数N。这两个List的元素应该可以对应构成一个矩阵。
```java
import java.util.ArrayList;
import java.util.List;
public List<List<Integer>> listsToMatrix(List<List<Integer>> list1, List<List<Integer>> list2) {
int m = list1.size();
int n = list2.get(0).size(); // 假设list2的所有列表长度都一致
// 创建一个新的二维ArrayList来存储结果
List<List<Integer>> matrix = new ArrayList<>(m);
for (int i = 0; i < m; i++) {
matrix.add(new ArrayList<>());
for (int j = 0; j < n; j++) {
matrix.get(i).add(list1.get(i).get(j)); // 如果list1的元素也是列表,则需要嵌套取值
}
}
return matrix;
}
```
这个函数接收两个List作为输入,然后遍历每个List,将其对应的元素添加到新矩阵的相应位置上。如果`list1`的元素本身也是列表,那么你需要进一步访问它的元素来填充矩阵。
例如,如果你有如下的两个列表:
```java
List<List<Integer>> rowList = new ArrayList<>();
rowList.add(Arrays.asList(1, 2, 3));
rowList.add(Arrays.asList(4, 5, 6));
List<List<Integer>> colList = new ArrayList<>();
colList.add(Arrays.asList(7, 8));
colList.add(Arrays.asList(9, 10, 11));
colList.add(Arrays.asList(12, 13));
```
应用上面的方法会得到一个3x2的矩阵:
```java
[
[1, 7],
[2, 8],
[3, 9]
]
```
阅读全文