java11新特性之集合轉(zhuǎn)換為數(shù)組的方法
Java11引入了一種將帶有泛型的集合轉(zhuǎn)換為帶有泛型的數(shù)組的簡單方法。
Java11之前
使用toArray方法
對于List,你可以直接使用toArray方法,但需要注意,toArray方法默認返回一個Object[]數(shù)組,你可能需要將其強制轉(zhuǎn)換為正確的類型。
List<String> list = Arrays.asList("a", "b", "c");
Object[] strObjectArray = list.toArray();這樣轉(zhuǎn)出來的數(shù)組是Object類型,在使用的時候還需要進行強制類型轉(zhuǎn)換。
在Java 11及之前,推薦使用這種方式來避免不必要的數(shù)組復制:
String[] array = list.toArray(new String[0]);
在Java 11之前,你可能會看到這樣的代碼:
String[] array = list.toArray(new String[list.size()]);
這種方式在Java 11之前也是有效的,但可能導致不必要的數(shù)組復制
但從Java 9開始,推薦使用new Type[0]作為toArray方法的參數(shù),因為它可以避免在集合大小已知時的不必要數(shù)組創(chuàng)建和復制。
使用流(Streams)API
雖然這不是最直接的方法,但你可以使用流來轉(zhuǎn)換集合為數(shù)組。這通常在需要更復雜的轉(zhuǎn)換時更有用。
List<String> list = Arrays.asList("a", "b", "c");
String[] array = list.stream().toArray(String[]::new);在這個例子中,我們使用stream().toArray()方法,并傳遞一個構(gòu)造函數(shù)引用(String[]::new)來指定數(shù)組的類型。這將返回一個正確類型的數(shù)組。
Java11
Java 11中,toArray方法可以傳入IntFunction參數(shù)。這種方式允許你更靈活地創(chuàng)建數(shù)組。
toArray方法的原型如下:
java.util.Collection#toArray(java.util.function.IntFunction<T[]>)
default <T> T[] toArray(IntFunction<T[]> generator) {
return toArray(generator.apply(0));
}toArray方法的使用如下:
List<String> list = Arrays.asList("a", "b", "c");
String[] array = list.toArray(String[]::new);這種方式使用方法引用String[]::new,簡潔且高效。
到此這篇關(guān)于java11新特性之集合轉(zhuǎn)換為數(shù)組的文章就介紹到這了,更多相關(guān)java11集合轉(zhuǎn)換為數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Java注解和反射實現(xiàn)JSON字段自動重命名
這篇文章主要介紹了如何使用Java注解和反射實現(xiàn)JSON字段自動重命名,文中通過代碼示例和圖文介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下2024-08-08
使用IDEA啟動項目遇見ClassNotFoundException的解決方案
這篇文章主要介紹了使用IDEA啟動項目遇見ClassNotFoundException的正確解決方案,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06
關(guān)于servlet向mysql添加數(shù)據(jù)時中文亂碼問題的解決
最近在工作中遇到一個小問題,出現(xiàn)了中文亂碼的問題,無奈只能想辦法解決,下面這篇文章主要給大家介紹了關(guān)于servlet向mysql添加數(shù)據(jù)時中文亂碼問題的解決方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。2017-08-08
spring-boot List轉(zhuǎn)Page的方法步驟
這篇文章主要介紹了spring-boot List轉(zhuǎn)Page的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-03-03
如何使用@Slf4j和logback-spring.xml搭建日志框架
這篇文章主要介紹了如何使用@Slf4j和logback-spring.xml搭建日志框架問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06

