Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否有任何方法可以复制集合上的基元数组,反之亦然,并自动包装/展开它们?_Java_Arrays - Fatal编程技术网

Java 是否有任何方法可以复制集合上的基元数组,反之亦然,并自动包装/展开它们?

Java 是否有任何方法可以复制集合上的基元数组,反之亦然,并自动包装/展开它们?,java,arrays,Java,Arrays,例如:这段代码是正确的,因为我使用的是整数对象 Integer[] numbers = {32, 3, 5, 57, 1}; List <Integer> list = new ArrayList <> (Arrays.asList(numbers)); 我知道我可以在数组中使用for each,包装每个int数据,然后使用add(),但我想知道是否有任何方法可以直接实现这一点。在Java 8中,您可以使用streams获得更简洁的代码: int[] primitive

例如:这段代码是正确的,因为我使用的是整数对象

Integer[] numbers = {32, 3, 5, 57, 1};
List <Integer> list = new ArrayList <> (Arrays.asList(numbers));

我知道我可以在数组中使用for each,包装每个int数据,然后使用add(),但我想知道是否有任何方法可以直接实现这一点。

在Java 8中,您可以使用streams获得更简洁的代码:

int[] primitives = {32, 3, 5, 57, 1};
List<Integer> objects = IntStream.of(primitives)
                                 .boxed()
                                 .collect(Collectors.toList());

下面是使用ApacheCommons的方法

import java.util.Arrays;
import org.apache.commons.lang.ArrayUtils;

List<Integer> longs = Arrays.asList(ArrayUtils.toObject(new int[] {1,2,3,4}));
导入java.util.array;
导入org.apache.commons.lang.ArrayUtils;
List longs=Arrays.asList(ArrayUtils.toObject(newint[]{1,2,3,4}));
或使用

int[] arr = {1,2,3,4};
int<Long> list = Arrays.stream(arr).boxed().collect(Collectors.toList());
int[]arr={1,2,3,4};
int list=Arrays.stream(arr.boxed().collect(Collectors.toList());

如果我使用apache commons或guava,您只能对相同的基本类型使用
system
的数组复制函数。当用户试图在没有commons/guava的PC上运行程序时,我是否会遇到兼容性问题?只需将必需的
apache
jar添加到类路径中,您就可以解决问题或在eclipse中添加jar构建路径“投票需要15个声望”对不起!XD非常感谢,巴尔加夫。@VicenteParra使用绿色标记符号将其标记为已接受的答案,如果它对您有帮助,我的朋友:)
import java.util.Arrays;
import org.apache.commons.lang.ArrayUtils;

List<Integer> longs = Arrays.asList(ArrayUtils.toObject(new int[] {1,2,3,4}));
int[] arr = {1,2,3,4};
int<Long> list = Arrays.stream(arr).boxed().collect(Collectors.toList());