Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 如何将带有整数的ArrayList转换为普通整数数组?_Java_Arrays - Fatal编程技术网

Java 如何将带有整数的ArrayList转换为普通整数数组?

Java 如何将带有整数的ArrayList转换为普通整数数组?,java,arrays,Java,Arrays,ArrayList Temp可以正确读取数据,但当我尝试将其强制转换并存储到普通整数数组中时,它不允许这样做?您可以使用streams来完成此操作 Temp = ReadLeaderboard(); int[] TrueLeaderboards = Temp.toArray(new int[Temp.size()]); List integers=magicSupplier();//然而,这是你得到的名单 int[]ints=integers.stream().mapToInt

ArrayList Temp可以正确读取数据,但当我尝试将其强制转换并存储到普通整数数组中时,它不允许这样做?

您可以使用streams来完成此操作

    Temp = ReadLeaderboard();
    int[] TrueLeaderboards = Temp.toArray(new int[Temp.size()]);
List integers=magicSupplier();//然而,这是你得到的名单
int[]ints=integers.stream().mapToInt(Integer::intValue.toArray();
否则,您需要将
整数
解装箱到
int
,因为对象
整数
不是基元
int
。您需要取消装箱这就是代码不起作用的原因:您基本上提供了一个
int[]
来填充
Integer


此外,Java命名约定规定,应使用小写名称命名变量(除非它们是常量),即
Temp
变量应称为
Temp
。只有对象应该大写,如
Temp

不能将基元数组用作泛型参数。请参阅并改用:


它不允许您将
int[]
发送到,因为该方法接受类型参数的数组,该数组必须是引用类型,而不是原始类型,如
int

Integer[] array = list.toArray(new Integer[list.size()]);

数组有重载。设置
long[]
double[]
T[]
数组的setAll
,以及相应的
parallelSetAll
方法,这些方法都是每个方法的并行版本。

感谢您:)使用
Integer::valueOf
可以隐式地将
整数
装箱到
int
,这样就可以将其传递到
valueOf
,从而返回一个
整数
,然后它被隐式地解绑回
int
。只需使用
Integer::intValue
。您是对的,已更改。您应该发布一个更完整的示例,并给出您面临的确切错误。
Integer[] array = list.toArray(new Integer[list.size()]);
public <T> T[] toArray(T[] a)
int[] arr = new int[temp.size()];
Arrays.setAll(arr, index -> temp.get(index));