![](/img/trans.png)
[英]How to convert a list of object to a list of integer in Java?
[英]How to convert List<Integer> to Integer[] in java?
我試圖將Integer
的ArrayList
轉換為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.htm或http://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.