Java中數(shù)組與集合的相互轉(zhuǎn)換實(shí)現(xiàn)解析
這篇文章主要介紹了Java中數(shù)組與集合的相互轉(zhuǎn)換實(shí)現(xiàn)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
- List轉(zhuǎn)數(shù)組:采用集合的toArray()方法
- 數(shù)組轉(zhuǎn)List:采用Arrays的asList()方法
數(shù)組轉(zhuǎn)換為集合
注意:在數(shù)組轉(zhuǎn)集合的過(guò)程中,要注意是否使用了視圖的方式直接返回?cái)?shù)組中的數(shù)據(jù)。以Arrays.asList()為例,它把數(shù)組轉(zhuǎn)換成集合時(shí),不能使用其修改集合相關(guān)的方法,它的add/remove/clear方法會(huì)拋出 UnsupportedOperationException異常。
這是因?yàn)锳rrays.asList體現(xiàn)的是適配器模式,后臺(tái)的數(shù)據(jù)仍是原有數(shù)組。asList的返回對(duì)象是一個(gè)Arrays的內(nèi)部類(lèi),它并沒(méi)有實(shí)現(xiàn)集合個(gè)數(shù)的相關(guān)修改操作,這也是拋出異常的原因。
集合轉(zhuǎn)數(shù)組
集合轉(zhuǎn)數(shù)組相對(duì)簡(jiǎn)單,一般在適配別人接口的時(shí)候常常用到
代碼例子
public class Main { public static void main(String[] args) { //1.數(shù)組轉(zhuǎn)換為集合 String[] strs = new String[3]; strs[0] = "a"; strs[1] = "b"; strs[2] = "c"; List<String> stringList = Arrays.asList(strs); System.out.println(stringList); //1.1注意:直接使用add、remove、clear方法會(huì)報(bào)錯(cuò) // stringList.add("abc"); //1.2如果想要正常的使用add等修改方法,需要重新new一個(gè)ArrayList List<String> trueStringList = new ArrayList<>(Arrays.asList(strs)); trueStringList.add("abc"); System.out.println(trueStringList); //2.集合轉(zhuǎn)數(shù)組 List<Integer> integerList = new ArrayList<>(); integerList.add(1); integerList.add(2); integerList.add(3); //新生成的數(shù)組大小一定要大于原List的大小 Integer[] integers = new Integer[3]; integerList.toArray(integers); System.out.println(Arrays.asList(integers)); } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Mybatis-Plus自動(dòng)填充更新操作相關(guān)字段的實(shí)現(xiàn)
數(shù)據(jù)庫(kù)表中應(yīng)該都要有create_time、update_time字段;那么在開(kāi)發(fā)中,對(duì)于這些共有字段的處理應(yīng)該要進(jìn)行統(tǒng)一,這樣就可以簡(jiǎn)化我們的開(kāi)發(fā)過(guò)程。那么本文就對(duì)Mybatis-Plus中的字段自動(dòng)填充進(jìn)行記錄2021-11-11Java 深入淺出分析Synchronized原理與Callable接口
Synchronized關(guān)鍵字解決的是多個(gè)線程之間訪問(wèn)資源的同步性,synchronized關(guān)鍵字可以保證被它修飾的方法或者代碼塊在任意時(shí)刻只能有一個(gè)線程執(zhí)行,Runnable是執(zhí)行工作的獨(dú)立任務(wù),但是不返回任何值。如果我們希望任務(wù)完成之后有返回值,可以實(shí)現(xiàn)Callable接口2022-03-03Java Socket編程實(shí)現(xiàn)簡(jiǎn)單的問(wèn)候服務(wù)
這篇文章主要為大家介紹了Java Socket編程實(shí)現(xiàn)簡(jiǎn)單的問(wèn)候服務(wù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-01-01java實(shí)現(xiàn)將ftp和http的文件直接傳送到hdfs
前面幾篇文章,我們已經(jīng)做了很好的鋪墊了,幾個(gè)要用到的工具我們都做了出來(lái),本文就是將他們集合起來(lái),說(shuō)下具體的用法,小伙伴們可以參考下。2015-03-03【java 多線程】守護(hù)線程與非守護(hù)線程的詳解
這篇文章主要介紹了java守護(hù)線程與非守護(hù)線程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04java使用xstream實(shí)現(xiàn)xml文件和對(duì)象之間的相互轉(zhuǎn)換
xml是一個(gè)用途比較廣泛的文件類(lèi)型,在java里也自帶解析xml的包,但是本文使用的是xstream來(lái)實(shí)現(xiàn)xml和對(duì)象之間的相互轉(zhuǎn)換,xstream是一個(gè)第三方開(kāi)源框架,使用起來(lái)比較方便,對(duì)java?xml和對(duì)象轉(zhuǎn)換相關(guān)知識(shí)感興趣的朋友一起看看吧2023-09-09