我想从List<int[]>
转换为List<Integer> list = new ArrayList<>();
List<List<Integer>> arr = matrix(list);
int [] temp2 = arr;
,但我不知道该怎么做。
我尝试这样做:
<style type="text/css">
<!--
.figure{
display:table;
width:50px;
}
.figure.caption{
display:table-caption;
caption-side:bottom;
}
-->
</style>
但这是错误的
答案 0 :(得分:1)
我不确定你真正想要实现什么,但一个简单的解决方案是将每个List<Integer>
转换为int[]
的双循环。您可以使用AFAIK这样的简单方法来完成此操作,没有内置库为您执行此操作(因为类型List
和int[]
的异构性):
// cycle this for each List<Integer>
int[] toIntArray(List<Integer> a_list){
int[] ret = new int[a_list.size()];
for(int i = 0; i < ret.length; i++)
ret[i] = a_list.get(i);
return ret;
}
更新Java 8
感谢Java 8流,现在您可以简单地编写(再次示例是针对单个List<Integer>
:
int [] my_ints = list.stream().mapToInt(Integer::intValue).toArray();
<强>更新强>
当您要求完整的解决方案时,我会写下一种可能的方法来实现您的需求:
List<int[]> intArrayList = new ArrayList();
for(List<Integer> intList : intListList){
int[] intArray = new int[intList.size()];
for(int i = 0; i < intArray.length; ++i){
intArray[i] = intList.get(i);
}
intArrayList.add(intArray);
}
答案 1 :(得分:0)
i want to convert from List<List<Integer>> to List<int[]>
由于某种原因你调用arr的matrix()的返回值在下面称为intListList。
// You can map the List<Integer> items in the List<List<Integer> to int[] items in a List<int[]> like so:
List<int[]> intArrList = intListList.stream()
.map(Collection::stream)
.map(Stream::mapToInt)
.map(IntStream::toArray)
.collect(Collectors.toList())
// or if you prefer
List<int[]> intArrList = intListList.stream()
.map(ints -> ints.stream().mapToInt().toArray())
.collect(Collectors.toList())
// For Java before 8
List<int[]> intArrList = new ArrayList();
for(List<Integer> ints : intListList){
int[] intArr = new int[ints.size()];
for(int i = 0; i < intArr.length; ++i){
intArr[i] = ints.get(i);
}
intArrList.add(intArr);
}