gpt4 book ai didi

java - 将列表转换为二维数组 (Java)

转载 作者:行者123 更新时间:2023-12-02 13:39:00 25 4
gpt4 key购买 nike

我是编程初学者,我有一个方法:

 public int[][] toArray(List<Integer> list, int rows) {
int[][] result = new int[list.size()][rows];
int i = 0;
int j = 0;
for (Integer value : list) {
result[i][j] = value;
j++;
if(j > rows - 1){
i++;
j = 0;
}
}
return result;
}

如果rows = 2(并且如果我们有一个列表包含从 1 到 7 的数字),其结果是:

[[1, 2], [3, 4], [5, 6], [7, 0], [0, 0], [0, 0], [0, 0]]

如果rows = 3 结果是:

[[1, 2, 3], [4, 5, 6], [7, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]

我需要什么:

[[1, 2], [3, 4], [5, 6], [7, 0]] 

[[1, 2, 3], [4, 5, 6], [7, 0, 0]]

如何做到这一点?

最佳答案

只是为了好玩,这是使用 Streams 和 Guava 的另一种方法:

public static int[][] toArray(List<Integer> list, int rows) {
return Lists.partition(list, rows)
.stream()
.map(Ints::toArray)
.map(a -> Arrays.copyOf(a, rows))
.toArray(int[][]::new);
}

关于java - 将列表转换为二维数组 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42843518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com