Java 二维数组转换为List<List<Integer>>
时间: 2024-09-22 16:01:46 浏览: 50
在Java中,将二维数组转换为`List<List<Integer>>`可以使用流(Stream) API以及`Collectors.toList()`方法。这里是一个简单的示例:
```java
int[][] twoDimensionalArray = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
List<List<Integer>> listOfLists = Arrays.stream(twoDimensionalArray)
.map(Arrays::stream)
.collect(Collectors.toList());
```
首先,使用`Arrays.stream(array)`将二维数组转换为一维流,然后对每个元素应用`Arrays::stream`将其内部元素也转换为流。最后,使用`collect(Collectors.toList())`将所有流收集到一个`List<List<Integer>>`中。
现在,`listOfLists`包含了原二维数组的所有元素,每一项都是一个包含原始数组内对应行数据的列表。
相关问题
把List<List<Integer>>转成二维int数组
将`List<List<Integer>>`转换成二维整数数组可以分为两步操作:首先,迭代外部列表中的每个内部列表;然后,将每个内部列表的内容复制到相应的二维数组元素中。这里是一个简单的示例:
```java
import java.util.List;
public int[][] convertToListArray(List<List<Integer>> listOfLists) {
// 初始化二维数组的大小等于最外层List的数量
int rows = listOfLists.size();
int[][] array = new int[rows][];
for (int i = 0; i < rows; i++) {
List<Integer> innerList = listOfLists.get(i);
// 检查内部列表是否为空,避免null pointer异常
if (innerList != null && !innerList.isEmpty()) {
array[i] = new int[innerList.size()];
// 将内部列表的内容复制到二维数组对应位置
for (int j = 0; j < innerList.size(); j++) {
array[i][j] = innerList.get(j);
}
}
}
return array;
}
// 示例用法
List<List<Integer>> listOfIntegers = ... // 这里假设listOfIntegers已经填充了数据
int[][] result = convertToListArray(listOfIntegers);
```
List<List<Integer>> res = new LinkedList();这个怎么转为二维数组
要将 `List<List<Integer>>` 转换为二维数组,可以使用两个循环遍历 `res` 中的元素,并将其转换为二维数组中的元素,具体代码如下:
```java
List<List<Integer>> res = new LinkedList<>();
// 假设 res 已经被填充好了
// 计算二维数组的行列数
int rows = res.size();
int cols = res.get(0).size();
// 创建二维数组
int[][] arr = new int[rows][cols];
// 将 res 转换为二维数组
for (int i = 0; i < rows; i++) {
List<Integer> row = res.get(i);
for (int j = 0; j < cols; j++) {
arr[i][j] = row.get(j);
}
}
// 打印二维数组
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
```
以上代码中,假设 `res` 已经被填充好了,首先计算出二维数组的行列数,然后创建一个 int 类型的二维数组 `arr`,接着使用两个循环遍历 `res` 中的元素,并将其转换为二维数组中的元素,最后打印出二维数组。
阅读全文