在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

不要讓Arrays.asList()的陷阱坑了你的代碼!

jf_ro2CN3Fa ? 來源:CSDN ? 2023-07-26 14:27 ? 次閱讀

Java中,我們經(jīng)常需要將數(shù)組轉(zhuǎn)換為L(zhǎng)ist來方便地進(jìn)行操作。Arrays.asList()方法是一種常見的方式,但是它存在一個(gè)不太常見但需要注意的坑。

本文將深入探討Arrays.asList()的使用,揭示其中的陷阱,并提供解決方案。

Arrays.asList()方法介紹

Arrays.asList()方法是將數(shù)組轉(zhuǎn)換為L(zhǎng)ist的方法,它返回一個(gè)List對(duì)象,但這個(gè)List對(duì)象并不是java.util.ArrayList對(duì)象,而是Arrays內(nèi)部的ArrayList對(duì)象。

Arrays.ArrayList類繼承自AbstractList,實(shí)現(xiàn)了List接口。它重寫了add()、remove()等修改List結(jié)構(gòu)的方法,并將它們直接拋出UnsupportedOperationException異常,從而禁止了對(duì)List結(jié)構(gòu)的修改。

具體來說,Arrays.asList()方法返回的是Arrays類中的一個(gè)私有靜態(tài)內(nèi)部類ArrayList,它繼承自AbstractList類,實(shí)現(xiàn)了List接口。

Arrays.asList()方法的使用非常簡(jiǎn)單,只需要將一個(gè)數(shù)組作為參數(shù)傳遞給該方法即可。例如:

String[]arr=newString[]{"a","b","c"};
Listlist=Arrays.asList(arr);

Arrays.asList()方法的坑

盡管Arrays.asList()方法很方便,但也存在一些坑,其中最常見的一個(gè)是:在使用Arrays.asList()方法時(shí),如果對(duì)返回的List對(duì)象進(jìn)行修改(例如增加、刪除元素),將會(huì)拋出"UnsupportedOperationException"異常。

為什么會(huì)出現(xiàn)這個(gè)異常呢?這是因?yàn)锳rrays.asList()方法返回的List對(duì)象,是一個(gè)固定大小的List,不能進(jìn)行結(jié)構(gòu)上的修改,否則會(huì)拋出異常。

下面的代碼演示了這個(gè)問題:

String[]arr=newString[]{"a","b","c"};
Listlist=Arrays.asList(arr);
list.add("d");//拋出UnsupportedOperationException異常

上述代碼中,我們嘗試向List對(duì)象中添加一個(gè)新的元素"d",結(jié)果會(huì)拋出"UnsupportedOperationException"異常。

解決Arrays.asList()方法的坑

要解決Arrays.asList()方法的坑,我們需要將返回的List對(duì)象轉(zhuǎn)換為一個(gè)可修改的List對(duì)象。有幾種方法可以實(shí)現(xiàn)這個(gè)目標(biāo):

方法一:使用java.util.ArrayList類

我們可以使用java.util.ArrayList類,將Arrays.asList()方法返回的List對(duì)象轉(zhuǎn)換為一個(gè)java.util.ArrayList對(duì)象,示例如下:

String[]arr=newString[]{"a","b","c"};
Listlist=newArrayList<>(Arrays.asList(arr));
list.add("d");//正常運(yùn)行

上述代碼中,我們首先使用Arrays.asList()方法將一個(gè)數(shù)組轉(zhuǎn)換為一個(gè)List對(duì)象,然后使用ArrayList的構(gòu)造方法,將這個(gè)List對(duì)象轉(zhuǎn)換為一個(gè)java.util.ArrayList對(duì)象,最后可以向這個(gè)ArrayList對(duì)象中添加元素。

方法二:使用Collections類

我們也可以使用Collections類提供的靜態(tài)方法,將Arrays.asList()方法返回的List對(duì)象轉(zhuǎn)換為一個(gè)可修改的List對(duì)象,示例如下:

String[]arr=newString[]{"a","b","c"};
Listlist=newArrayList<>(Arrays.asList(arr));
Collections.addAll(list,"d");//正常運(yùn)行

通過Collections.addAll()方法,我們可以將數(shù)組中的元素逐個(gè)添加到一個(gè)新的ArrayList對(duì)象中,從而實(shí)現(xiàn)了可修改性。

總結(jié)

在使用Arrays.asList()方法時(shí),需要注意返回的List對(duì)象是一個(gè)固定大小的List,不支持結(jié)構(gòu)上的修改操作。為了避免這個(gè)陷阱,我們可以使用java.util.ArrayList或Collections類提供的方法將返回的List對(duì)象轉(zhuǎn)換為可修改的List。通過了解這個(gè)陷阱并采取相應(yīng)的解決方案,我們可以安全地將數(shù)組轉(zhuǎn)換為L(zhǎng)ist,并避免潛在的異常情況。

不要讓Arrays.asList()的陷阱坑了你的代碼!

在Java中,我們經(jīng)常需要將數(shù)組轉(zhuǎn)換為L(zhǎng)ist來方便地進(jìn)行操作。Arrays.asList()方法是一種常見的方式,但是它存在一個(gè)不太常見但需要注意的坑。本文將深入探討Arrays.asList()的使用,揭示其中的陷阱,并提供解決方案。

Arrays.asList()方法介紹

Arrays.asList()方法是將數(shù)組轉(zhuǎn)換為L(zhǎng)ist的方法,它返回一個(gè)List對(duì)象,但這個(gè)List對(duì)象并不是java.util.ArrayList對(duì)象,而是Arrays內(nèi)部的ArrayList對(duì)象。

Arrays.ArrayList類繼承自AbstractList,實(shí)現(xiàn)了List接口。它重寫了add()、remove()等修改List結(jié)構(gòu)的方法,并將它們直接拋出UnsupportedOperationException異常,從而禁止了對(duì)List結(jié)構(gòu)的修改。

具體來說,Arrays.asList()方法返回的是Arrays類中的一個(gè)私有靜態(tài)內(nèi)部類ArrayList,它繼承自AbstractList類,實(shí)現(xiàn)了List接口。

Arrays.asList() 方法的使用非常簡(jiǎn)單,只需要將一個(gè)數(shù)組作為參數(shù)傳遞給該方法即可。例如:

String[]arr=newString[]{"a","b","c"};
Listlist=Arrays.asList(arr);

Arrays.asList()方法的坑

盡管Arrays.asList()方法很方便,但也存在一些坑,其中最常見的一個(gè)是:在使用Arrays.asList()方法時(shí),如果對(duì)返回的List對(duì)象進(jìn)行修改(例如增加、刪除元素),將會(huì)拋出"UnsupportedOperationException"異常。

為什么會(huì)出現(xiàn)這個(gè)異常呢?這是因?yàn)锳rrays.asList()方法返回的List對(duì)象,是一個(gè)固定大小的List,不能進(jìn)行結(jié)構(gòu)上的修改,否則會(huì)拋出異常。

下面的代碼演示了這個(gè)問題:

String[]arr=newString[]{"a","b","c"};
Listlist=Arrays.asList(arr);
list.add("d");//拋出UnsupportedOperationException異常

上述代碼中,我們嘗試向List對(duì)象中添加一個(gè)新的元素"d",結(jié)果會(huì)拋出"UnsupportedOperationException"異常。

解決Arrays.asList()方法的坑

要解決Arrays.asList()方法的坑,我們需要將返回的List對(duì)象轉(zhuǎn)換為一個(gè)可修改的List對(duì)象。有幾種方法可以實(shí)現(xiàn)這個(gè)目標(biāo):

方法一:使用java.util.ArrayList類

我們可以使用java.util.ArrayList類,將Arrays.asList()方法返回的List對(duì)象轉(zhuǎn)換為一個(gè)java.util.ArrayList對(duì)象,示例如下:

String[]arr=newString[]{"a","b","c"};
Listlist=newArrayList<>(Arrays.asList(arr));
list.add("d");//正常運(yùn)行

上述代碼中,我們首先使用Arrays.asList()方法將一個(gè)數(shù)組轉(zhuǎn)換為一個(gè)List對(duì)象,然后使用ArrayList的構(gòu)造方法,將這個(gè)List對(duì)象轉(zhuǎn)換為一個(gè)java.util.ArrayList對(duì)象,最后可以向這個(gè)ArrayList對(duì)象中添加元素。

方法二:使用Collections類

我們也可以使用Collections類提供的靜態(tài)方法,將Arrays.asList()方法返回的List對(duì)象轉(zhuǎn)換為一個(gè)可修改的List對(duì)象,示例如下:

String[]arr=newString[]{"a","b","c"};
Listlist=newArrayList<>(Arrays.asList(arr));
Collections.addAll(list,"d");//正常運(yùn)行

通過Collections.addAll()方法,我們可以將數(shù)組中的元素逐個(gè)添加到一個(gè)新的ArrayList對(duì)象中,從而實(shí)現(xiàn)了可修改性。

總結(jié)

在使用Arrays.asList()方法時(shí),需要注意返回的List對(duì)象是一個(gè)固定大小的List,不支持結(jié)構(gòu)上的修改操作。為了避免這個(gè)陷阱,我們可以使用java.util.ArrayList或Collections類提供的方法將返回的List對(duì)象轉(zhuǎn)換為可修改的List。通過了解這個(gè)陷阱并采取相應(yīng)的解決方案,我們可以安全地將數(shù)組轉(zhuǎn)換為L(zhǎng)ist,并避免潛在的異常情況。

不要讓Arrays.asList()的陷阱坑了你的代碼!





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA語言
    +關(guān)注

    關(guān)注

    0

    文章

    138

    瀏覽量

    20113
  • Arrays
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    6422

原文標(biāo)題:Arrays.asList() 隱藏的陷阱,你避開了嗎?

文章出處:【微信號(hào):芋道源碼,微信公眾號(hào):芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    不要讓其他人的技術(shù)債務(wù)影響到你

    編寫的代碼所帶來的債務(wù)。就像西班牙、希臘和葡萄牙等國(guó)家的金融負(fù)債會(huì)拖累全球經(jīng)濟(jì)一樣,其他人所編寫的軟件中的債務(wù)問題也會(huì)拖累,即便在自己的代碼中對(duì)債務(wù)的管理保持著非常負(fù)責(zé)的態(tài)度也是如
    發(fā)表于 12-16 14:43

    麻煩大家不要再發(fā)有密碼的代碼好嗎

    論壇是大家來學(xué)習(xí)的地方,不是來炫耀的地方,請(qǐng)問上傳個(gè)加密代碼,到底這種貼存在有什么意義?如果不想與大家分享,或者因?yàn)楣驹虿荒茏尨蠹铱吹剑蔷?b class='flag-5'>不要上傳上來嘛,不要讓大家空歡喜一場(chǎng)。
    發(fā)表于 08-07 12:53

    4大絕招護(hù)身 參加培訓(xùn)不被

    有5方面:1.導(dǎo)師和助教支撐技術(shù)層面;  2.有質(zhì)量的教學(xué)資料可保證學(xué)習(xí)的系統(tǒng)和連貫性;  3.hr的閱歷和總結(jié)概括能力影響軟能力的提升;  4.敲代碼的團(tuán)隊(duì)氛圍;  5.推薦就業(yè)機(jī)會(huì)。  既然選擇
    發(fā)表于 07-11 14:04

    【HarmonyOS HiSpark AI Camera試用連載 】九九八十一的第一--拆箱

    `以下過來人想說的話和一些積累總結(jié)。沒啥深入的經(jīng)驗(yàn)感覺到好失敗。 0號(hào)。注意不要手殘。一個(gè)人生道理:差不多就得了,不要沒完沒了!!! 1號(hào)
    發(fā)表于 10-21 22:41

    說說在鴻蒙開發(fā)時(shí)遇到的

    說說在鴻蒙中遇到的~
    發(fā)表于 11-20 17:21

    Java數(shù)組的常用方法_Java:數(shù)組工具類Arrays類的常用方法的用法及代碼

    本文主要詳細(xì)介紹Java數(shù)組的常用方法以及數(shù)組工具類Arrays類的常用方法的用法及代碼
    發(fā)表于 01-29 10:25 ?2927次閱讀

    如何編寫無法維護(hù)的代碼

    不想練功過度走火入魔吧。那就不要讓代碼一眼看去就完全無法維護(hù),只要它實(shí)質(zhì)上是那樣就行了。否則,
    的頭像 發(fā)表于 09-05 10:05 ?3524次閱讀

    電源技巧:不要讓USB電壓下降減慢充電器的速度資料下載

    電子發(fā)燒友網(wǎng)為提供電源技巧:不要讓USB電壓下降減慢充電器的速度資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計(jì)、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 04-10 08:51 ?24次下載
    電源技巧:<b class='flag-5'>不要讓</b>USB電壓下降減慢充電器的速度資料下載

    電源技巧:不要讓U S B 電壓下降減慢充電器的速度

    電源技巧:不要讓U S B 電壓下降減慢充電器的速度
    發(fā)表于 11-03 08:04 ?0次下載
    電源技巧:<b class='flag-5'>不要讓</b>U S B 電壓下降減慢充電器的速度

    Java中Arrays類是什么 Arrays常用方法

    了解Arrays類的概念 **A****rrays** 位于java.util包下,Arrays是一個(gè)操作數(shù)組的工具類。 Arrays常用方法 Arrays.fill:
    的頭像 發(fā)表于 02-17 15:11 ?1064次閱讀
    Java中<b class='flag-5'>Arrays</b>類是什么 <b class='flag-5'>Arrays</b>常用方法

    這17種焊接陷阱遇到過多少?

    良好的焊接是保證電路穩(wěn)定持久工作的前提。下面給出了常見到的焊接缺陷。看看你遇到過多少種?焊接中的常見問題▲陷阱1:錫珠▲陷阱2:擾動(dòng)的焊接——在焊接點(diǎn)冷卻過程中焊錫移動(dòng),造成焊接表面起霧、結(jié)晶、粗糙
    的頭像 發(fā)表于 04-14 09:39 ?911次閱讀
    這17種焊接<b class='flag-5'>陷阱</b>,<b class='flag-5'>你</b>遇到過多少?

    不要讓舊設(shè)備損害您的SAN

    電子發(fā)燒友網(wǎng)站提供《不要讓舊設(shè)備損害您的SAN.pdf》資料免費(fèi)下載
    發(fā)表于 09-01 15:05 ?0次下載
    <b class='flag-5'>不要讓</b>舊設(shè)備損害您的SAN

    Arrays的copyOf,copyOfRange和fill方法

    在本文中,我們來看看 java.util.Arrays ,我們可以使用 Arrays 創(chuàng)建,比較,排序,搜索,stream 和轉(zhuǎn)化數(shù)組。 創(chuàng)建 我們來看看,使用Arrays 怎么創(chuàng)建一個(gè)新的數(shù)組
    的頭像 發(fā)表于 09-25 14:12 ?468次閱讀

    JDK中java.lang.Arrays 類的源碼解析

    揭開它神秘的面紗。 java.util.Arrays 類是 JDK 提供的一個(gè)工具類,用來處理數(shù)組的各種方法,而且每個(gè)方法基本上都是靜態(tài)方法,能直接通過類名Arrays調(diào)用。 1、asList
    的頭像 發(fā)表于 10-11 15:31 ?627次閱讀
    JDK中java.lang.<b class='flag-5'>Arrays</b> 類的源碼解析

    推挽電路的踩過沒?

    推挽電路的踩過沒?
    的頭像 發(fā)表于 11-24 16:25 ?1139次閱讀
    推挽電路的<b class='flag-5'>坑</b>,<b class='flag-5'>你</b>踩過沒?
    主站蜘蛛池模板: 亚洲成年人影院| 四虎院影永久在线观看| 日本在线观看永久免费网站| 中文字幕一区二区三区四区五区人| 成人影院在线观看视频| 啪啪网视频| 国产大片免费观看资源| 午夜寂寞影院视频观看| 国产jzjzjz免费大全视频| 快播久久| 欧美一级特黄aaa大片| 色综合综合色综合色综合| 在线a免费观看最新网站| 亚洲激情视频| 色综合天天色综合| 噜色| 久久精品9| 久久久久久久综合狠狠综合| 欧美天堂色| 韩国三级理论在线看中文字幕| 久久久伊香蕉网站| 国产婷婷色一区二区三区深爱网| 花怜write. as| 激情五月播播| 国产一级真人毛爱做毛片| a级毛片免费观看网站| 天天插天天干天天射| 757一本到午夜宫| 老师喂我吃她的奶水脱她胸罩| 屁股趴过来欠打高h| 亚洲人成电影院在线观看| 亚州一级| 美女张开腿让男人桶爽| 最新eeuss影院第256页| 午夜精品久久久| 成人夜色香网站在线观看| 欧美视频不卡一区二区三区 | 国产免费美女| 国产福利乳摇在线播放| 手机在线看片你懂的| 欧美三级网|