Java 从List转换为List

Java 从List转换为List,java,Java,我想从一个列表转换到另一个列表,但我不知道怎么做 我试着去做: List<Integer> list = new ArrayList<>(); List<List<Integer>> arr = matrix(list); int [] temp2 = arr; 但这是错误的我不确定您真正想要实现什么,但一个简单的解决方案是使用双循环将每个列表转换为int[]。您可以使用一个简单的方法来实现,因为类型列表和int[]的异构性,没有内置的库可以为您

我想从一个列表转换到另一个列表,但我不知道怎么做

我试着去做:

List<Integer> list = new ArrayList<>();
List<List<Integer>> arr = matrix(list);
int [] temp2 = arr;

但这是错误的

我不确定您真正想要实现什么,但一个简单的解决方案是使用双循环将每个列表转换为int[]。您可以使用一个简单的方法来实现,因为类型列表和int[]的异构性,没有内置的库可以为您实现这一点:

更新

当您要求提供完整的解决方案时,我将写下实现您所需的可能方法:

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);
}
出于某种原因调用arr的矩阵返回值称为下面的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);
}

什么是矩阵。。。?这是你写的方法吗?是你从空中拔出的东西。。。希望它能起作用?int[][]r=newint[arr.size][];IntStream.range0,r.length.forEachi->r[i]=arr.geti.stream.maptointenger::intValue.toArray;真正的问题几乎是重复的,一个名为matrix的函数不应该首先使用列表。原语计算应使用未装箱的原语、数组和IntStream/DoubleStream/LongStream等进行,因为这会对性能产生重大影响。这是列表到int[,但我要求列表到列表?这是列表到int[,但我要求列表到列表?您能帮我处理列表吗?谢谢,但我不允许导入新库,你能用另一种方法吗?@kendragonz这不是一个新的库,这绝对是纯Java 8。如果您不能使用Java 8,则需要添加Java-7或android或其他标记。@ajb您所指的toArray将创建一个对象数组,而不是int[]List intArrList=new ArrayList;forList ints:list{int[]intArr=new int[ints.size];forint i=0;iList<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); }
 i want to convert from List<List<Integer>> to List<int[]> 
// 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);
}