引言
Java集合轉數組是經常會遇到的問題,本文主要介紹了Java集合轉數組的方法和原理。其中包括了List、Set、Map等集合的轉數組方法。對於不同的場景使用不同的方法,可以提高代碼的效率,也可以更好的實現程序功能。
正文
一、List轉數組
List轉數組是集合轉數組中最常見的問題之一,大多數時候我們需要將List轉換為數組,以滿足我們的業務需求。這裡介紹兩種轉換方式。
方法一:toArray()
List<String> list = new ArrayList<>(); list.add("Hello"); list.add("World"); String[] array = list.toArray(new String[0]);
需要注意的是,如果想要獲取的數組長度小於List中的元素大小,那麼toArray方法會返回一個新的數組。另外,如果List中存儲的是基本數據類型,那麼使用toArray方法會產生編譯錯誤。
方法二:使用Stream API
List<String> list = new ArrayList<>(); list.add("Hello"); list.add("World"); String[] array = list.stream().toArray(String[]::new);
Stream API提供了一個更加簡單的方式來轉換List為數組,並且可以處理基本數據類型。在這裡我們需要使用toArray構造函數的引用,這將返回一個指定大小的數組。
二、Set轉數組
Set轉數組的過程也類似List,主要是想達到將Set元素存儲到數組中的目的。其中,Java集合提供兩種不同的方式來實現Set轉數組。
方法一:toArray()
Set<String> set = new HashSet<>(); set.add("Hello"); set.add("World"); String[] array = set.toArray(new String[0]);
在將Set轉換為數組時與List的方式幾乎相同。這裡也需要傳遞一個空數組作為引用,而且與List對大小的限制就相同,如果外面的數組小於Set中元素的數量,那麼將會創建一個新的數組。
方法二:Apache Commons CollectionUtils
Set<String> set = new HashSet<>(); set.add("Hello"); set.add("World"); String[] array = (String[]) CollectionUtils.toArray(set);
如果您已經在項目中使用了Apache Commons Collection Utils,那麼您也可以使用它的toArray方法,來將Set轉換為數組。方法的返回類型是Object數組,所以需要進行強制轉換。
三、Map轉數組
將Map轉換為數組並不像之前兩種轉換一樣常見。Map轉數組又分為兩種不同的方式。
方法一:使用Lambda表達式
Map<String, String> map = new HashMap<>(); map.put("1", "Hello"); map.put("2", "World"); String[] keys = map.keySet().stream().toArray(String[]::new); String[] values = map.values().stream().toArray(String[]::new);
這裡直接使用Stream API解決了問題。我們首先需要獲取Map中的key,再將它們轉換為數組。這裡也可以使用values()方法來獲取Map中的值。
方法二:使用Map中的entrySet
Map<String, String> map = new HashMap<>(); map.put("1", "Hello"); map.put("2", "World"); String[] keys = new String[map.size()]; String[] values = new String[map.size()]; int index = 0; for (Map.Entry<String, String> entry : map.entrySet()) { keys[index] = entry.getKey(); values[index] = entry.getValue(); index++; }
Java中的Map類提供了entrySet()方法,該方法返回一個集合,其中每個元素都是一個Map.Entry實例,該實例包含一個鍵和一個值。在這裡,我們可以有選擇地將這些項轉換為數組。
總結
本文介紹了Java集合轉數組的方法和原理。在我們將數據存儲在內存中時,數組往往是集合之外的常見數據結構。通過本文的介紹,我們可以將集合中的元素轉換為數組,並在我們的程序中使用這些數據。
原創文章,作者:FBAZ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/147766.html