簡體   English   中英

如何轉換列表<Integer>到java中的Integer[]?

[英]How to convert List<Integer> to Integer[] in java?

我試圖將IntegerArrayList轉換為Integer[]

Integer[] finalResult = (Integer[]) result.toArray();

但我有一個例外

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;

請幫幫我。

您需要使用接受通用參數的toArray()版本:

Integer[] finalResult = new Integer[result.size()];
result.toArray(finalResult);

或者,作為單線:

Integer[] finalResult = result.toArray(new Integer[result.size()]);

您不能將List轉換為數組,因為List不是數組。 這里有兩種將List<Integer>轉換為Integer[]

List<Integer> list = Arrays.asList(1, 2, 3);
Integer[] arr = list.toArray(new Integer[list.size()]);
Integer[] arr2 = list.stream().toArray(Integer[]::new); // Java 8 only

List.toArray()返回一個 Object 數組。 使用List.toArray(T[])代替:

Integer[] finalResult = (Integer[]) result.toArray(new Integer[result.size()]);

您需要初始化數組。 像這樣嘗試

Integer[] finalResult = new Integer[result.size()];
finalResult = result.toArray(finalResult);

你可以通過多種方式做到這一點:

第一種方法

List<T> list = new ArrayList<T>();

T [] countries = list.toArray(new T[list.size()]);

例子:

List<String> list = new ArrayList<String>();

list.add("India");
list.add("Switzerland");
list.add("Italy");
list.add("France");

String [] countries = list.toArray(new String[list.size()]);

方法二

Foo[] array = new Foo[list.size()];
list.toArray(array); // fill the array

第三種方法

List<Integer> list = ...;
int[] array = new int[list.size()];
for(int i = 0; i < list.size(); i++) array[i] = list.get(i);

您還可以在這里找到一些示例代碼 - http://www.tutorialspoint.com/java/util/arraylist_toarray.htmhttp://examples.javacodegeeks.com/core-java/util/list/java-list-to -數組示例/

這里的答案是在toArray()方法中使用list.size()出於某種根本不需要的原因。 您可以只傳遞一個大小為 0 的空整數數組。

它簡單易行。 看一看:

List<Integer> yourList = List.of(1, 2, 3, 4, 5);
Integer[] intArray = yourList.toArray(new Integer[0]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM