Java 如何将带有整数的ArrayList转换为普通整数数组?
ArrayList Temp可以正确读取数据,但当我尝试将其强制转换并存储到普通整数数组中时,它不允许这样做?您可以使用streams来完成此操作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
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));