JAVA中的數(shù)組和List轉(zhuǎn)換方法場景分析
日常開發(fā)時(shí),經(jīng)常遇到需要List與數(shù)組互相轉(zhuǎn)換的場景。
List轉(zhuǎn)換成數(shù)組,可以用List的toArray()或者toArray(T[] a)的方法。
數(shù)組轉(zhuǎn)換成List,可以用Arrays.asList()或者Collections.addAll()方法。
如果僅僅為了打印數(shù)組,不需要把數(shù)組轉(zhuǎn)換成List,
可以使用Arrays.toString()方法。
一.List轉(zhuǎn)數(shù)組
List轉(zhuǎn)換成數(shù)組可以調(diào)用toArray方法,可以將List直接轉(zhuǎn)為Object[]數(shù)組
這里有兩個(gè)重載的方法,
一般使用帶泛型參數(shù)的方法:
Object[] toArray(); <T> T[] toArray(T[] a);
無參數(shù)toArray方法,這里注意不能強(qiáng)轉(zhuǎn),可能會(huì)出現(xiàn)報(bào)錯(cuò).
泛型的toArray方法要注意類型必須是包裝類型,基本類型是不行的.
二.數(shù)組轉(zhuǎn)List
可以使用Arrays.asList()或者Collections.addAll()方法,推薦使用Collections.addAll()方法,這樣得到的返回對象可以往里面添加新的元素。
String[] strArray = { "a", "b" };
List<String> strList = Arrays.asList(strArray);注意該方法的返回值是java.util.Arrays類中一個(gè)私有靜態(tài)內(nèi)部類java.util.Arrays.ArrayList,
它并非java.util.ArrayList類。
java.util.Arrays.ArrayList類具有set(),get(),contains()等方法,但是不支持添加add()或刪除remove()方法,調(diào)用這些方法會(huì)報(bào)錯(cuò)。
如果直接往返回的list添加一個(gè)新元素,運(yùn)行會(huì)報(bào)錯(cuò)UnsupportedOperationException
strList.add("c");解決方法是新建一個(gè)List對象,并且加入返回的strList,然后再add新元素:
List<String> strListNew = new ArrayList<>(strList);
strListNew.add("new data");Collections.addAll():
String[] strArray = { "a", "b" };
List<String> strList = new ArrayList<>(strArray.length);
Collections.addAll(strList, strArray);
strList.add("c");得到的返回對象可以直接添加新的元素。
Java8可用stream流將3種基本類型數(shù)組轉(zhuǎn)為List
List<Integer> intList= Arrays.
stream(new int[] { 1, 2, 3}).boxed().collect(Collectors.toList());
List<Long> longList= Arrays.
stream(new long[] { 1, 2, 3 }).boxed().collect(Collectors.toList());
List<Double> doubleList= Arrays.
stream(new double[] { 1, 2, 3 }).boxed().collect(Collectors.toList());
String[] arrays = {"a", "b", "c"};
List<String> stringList= Stream.of(arrays).collect(Collectors.toList());其他的數(shù)據(jù)類型short[]、byte[]、char[]在JDK1.8中目前不支持
到此這篇關(guān)于JAVA中的數(shù)組和List轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)java 數(shù)組和list轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java實(shí)現(xiàn)List與數(shù)組互相轉(zhuǎn)換的兩種方法
- java中l(wèi)ist和數(shù)組互相轉(zhuǎn)換的一些方法總結(jié)
- Java中數(shù)組和List的互相轉(zhuǎn)換問題小結(jié)
- Java數(shù)組轉(zhuǎn)換為List的四種方式
- Java中List與數(shù)組之間的相互轉(zhuǎn)換
- Java?從json提取數(shù)組并轉(zhuǎn)換為list的操作方法
- java list,set,map,數(shù)組間的相互轉(zhuǎn)換詳解
- Java List轉(zhuǎn)換成String數(shù)組幾種實(shí)現(xiàn)方式詳解
- Java中List與數(shù)組相互轉(zhuǎn)換實(shí)例分析
相關(guān)文章
java將html轉(zhuǎn)成圖片代碼實(shí)例(html2image)
這篇文章主要介紹了java將html轉(zhuǎn)成圖片的相關(guān)資料,在Java開發(fā)中,將HTML轉(zhuǎn)換為圖片可以使用html2image庫,文中通過代碼及圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-09-09
基于springboot+vue實(shí)現(xiàn)垃圾分類管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了基于springboot+vue實(shí)現(xiàn)垃圾分類管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
springcloud引入spring-cloud-starter-openfeign失敗的解決
這篇文章主要介紹了springcloud?引入spring-cloud-starter-openfeign失敗的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
SpringMvc請求處理參數(shù)?和?響應(yīng)數(shù)據(jù)處理的示例詳解
這篇文章主要介紹了SpringMvc請求處理參數(shù)和響應(yīng)數(shù)據(jù)處理,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09
如何利用IDEA搭建SpringBoot項(xiàng)目整合mybatis實(shí)現(xiàn)簡單的登錄功能
這篇文章主要介紹了如何利用IDEA搭建SpringBoot項(xiàng)目整合mybatis實(shí)現(xiàn)簡單的登錄功能,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
DecimalFormat數(shù)字格式化 0和# 的區(qū)別及說明
這篇文章主要介紹了DecimalFormat數(shù)字格式化 0和# 的區(qū)別及說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
SpringBoot登錄認(rèn)證前后端實(shí)現(xiàn)方案:SpringBoot + Mybatis +&
本文展示如何在Spring生態(tài)系統(tǒng)中整合IOC/DI、MyBatis、MD5加密、Session/Cookie管理、JWT令牌和攔截器,以實(shí)現(xiàn)一個(gè)企業(yè)級的認(rèn)證方案,前端使用HTML/CSS/JavaScript/JQuery,后端使用SpringBoot+MyBatis+JWT,通過統(tǒng)一返回結(jié)果封裝和圖形驗(yàn)證碼,提高了API的可維護(hù)性和安全性2025-10-10
SpringBoot org.springframework.beans.factory.Unsatisfie
本文主要介紹了SpringBoot org.springframework.beans.factory.UnsatisfiedDependencyException依賴注入異常,文中通過示例代碼介紹的很詳細(xì),具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02

