如何从数组中创建列表,例如: int[] arr = {3, 1, 5, 8, 2, 4}
. 使列表中的列表只有两个元素,例如: [[3,1], [5,8], [2,4]]
.
到目前为止,我已经尝试了下面的代码,但它只返回带有一个元素的列表,我不知道哪里出错了。
class ListList {
public static List<List<Integer>> listOfList(int[] num){
List<List<Integer>> arrList = new ArrayList<>();
for(int i = 0 ; i<num.length;i++){
List<Integer> list = new ArrayList<>();
if(list.size() !=2){
list.add(num[i]);
}
arrList.add(list);
}
return arrList;
}
}
结果: [[3], [1], [5], [8], [2], [4]]
.
4条答案
按热度按时间lh80um4z1#
如果确定列表中有偶数个值,可以这样做。
创建列表列表。
一次两个,把每个放在一个单独的列表中
将该列表添加到列表列表中
印刷品
如果列表长度为奇数,请将赋值更改为
这里是一个使用流的类似解决方案。
在for循环中进行迭代
Map取决于数组长度的奇偶性
并返回一个列表列表。
mqxuamgl2#
在每次迭代中创建一个空列表,然后检查
size != 2
(当然是)并添加1个元素,最后将包含1个元素的列表添加到结果列表中,这不是您所需要的。将列表创建移出循环并向其中添加元素。当它
size == 2
,将当前列表添加到结果列表并创建一个新列表。若您的输入大小可以是奇数,那个么您还应该将长度为1的列表添加到结果列表中。如果不想,请添加传统支票。
dojqjjoe3#
这里有一个通用的:
输出:
您基本上是在创建索引->值的Map,然后根据batchsize进行分组以进行拆分
llew8vvj4#
试试这个:
在您的示例中,您总是在循环中创建一个新列表,因此大小始终为0,而不是2。