在 Java 中將列表轉換為 Long[] 數組
1. 概述
Lists
和Arrays
是 Java 中存儲對象的兩種常見方式。在我們需要存儲和操作數據的項目中, Lists
和Arrays
都允許在程序執行的整個過程中存儲數據。
本教程介紹如何在 Java 中將List<Long>
對象轉換為Long[]
Array
。
2.使用List.toArray()
方法
List
接口提供了toArray()
方法,該方法返回包含所有列表元素的Array
對象。
讓我們看看如何在 Java 中使用toArray()
方法將List<Long>
對象轉換為Long[] Array
:
List<Long> list = Arrays.asList(1L, 2L, 3L, 4L, 5L);
Long[] array = new Long[list.size()];
array = list.toArray(array);
在上面的示例中,我們創建了一個新的Long
值Array
,其大小與要轉換的List
大小相同。我們還可以傳遞一個空Array
並將內存分配委託給 JVM:
List<Long> list = Arrays.asList(1L, 2L, 3L, 4L, 5L);
Long[] array = new Long[0];
array = list.toArray(array);
3. 使用番石榴庫
Guava 庫提供了Longs.toArray()
方法,該方法將Long
值的集合按照相同的順序轉換為Long
Array
.
讓我們說明如何使用 Guava Longs.toArray()
方法將List<Long>
對象轉換為Long[] Array
:
List<Long> list = Arrays.asList(1L, 2L, 3L, 4L, 5L);
long[] array = Longs.toArray(list);
我們應該知道,如果傳遞的Collection
或其任何元素為 null ,Guava 的Longs.toArray()
方法會拋出NullPointerException
。
4. 使用Stream. mapToLong()
方法
Java 8 允許使用 Stream API 將List
轉換為Array
。首先,我們必須使用List.stream()
方法將所需列表轉換為流.
其次,我們將應用Stream.mapToLong()
方法返回LongStream.
最後,我們將使用Stream.toArray()
方法返回一個包含流中的Long
元素的Array
。
現在讓我們看看如何以兩種不同的方式實現mapToLong()
方法。
首先,我們使用 lambda 表達式:
List<Long> list = Arrays.asList(1L, 2L, 3L, 4L, 5L);
long[] array = list.stream().mapToLong(l -> l).toArray();
其次,我們使用方法引用:
List<Long> list = Arrays.asList(1L, 2L, 3L, 4L, 5L);
long[] array = list.stream().mapToLong(Long::longValue).toArray();
5. 結論
在本文中,我們學習瞭如何使用三種方法在 Java 中將List<Long>
對象轉換為Long[]
數組。第一種方法使用List.toArray()
方法。在第二個中,我們使用了 Guava Longs.toArray()
方法。最後,我們通過mapToLong()
方法使用 Java 8 Stream API。
與往常一樣,代碼示例可在 GitHub 上獲取。