成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Java踩坑記錄之Arrays.AsList

瀏覽:78日期:2022-08-21 15:51:16

前言

java.util.Arrays的asList方法可以方便的將數組轉化為集合,我們平時開發在初始化ArrayList時使用的比較多,可以簡化代碼,但這個靜態方法asList()有幾個坑需要注意:

一. 如果對集合使用增加或刪除元素的操作將會報錯

如下代碼:

List list = Arrays.asList('a','b','c');list.add('d');

輸出結果:

Exception in thread 'main' java.lang.UnsupportedOperationExceptionat java.util.AbstractList.add(AbstractList.java:148)at java.util.AbstractList.add(AbstractList.java:108)at ArraysAsListTest.main(ArraysAsListTest.java:7)

Arrays.asList的源碼雖然返回的是一個ArrayList,但這個ArrayList是Arrays內部的一個靜態類(java.util.Arrays.ArrayList),并不是我們平時用的java.util.ArrayList只是名字一樣,包名不一樣:

Java踩坑記錄之Arrays.AsList

這個ArrayList也繼承自AbstractList,但是卻沒有實現add(),remove()方法用這兩個方法其實調用的是AbstractList的默認方法:

public void add(int index, E element) { throw new UnsupportedOperationException();}

直接拋出' UnsupportedOperationException'的異常!

所以當我們調用這個ArrayList的add方法時其實是調用了抽象集合類里的add方法,就拋出了上面的異常,原因是數組雖然提供了轉集合的方法, 但本質上還是個數組,數組的長度是固定的,所以jdk的作者沒有實現add()和remove()方法。

大家在使用的時候需要注意,要結合具體業務場景判斷:如果只是對轉成后的集合進行遍歷或使用stream()流操作都沒有問題,可以正常使用(修改元素也沒問題) 但如果需要新增元素或刪除元素等改變集合長度的操作就要避免,否則報錯就會影響到我們正常的業務邏輯。

二. 長度問題

還是Arrays的asList(),該方法無法將一個基本類型的數組轉換成集合List,或者說基本類型雖然能轉換成功,但不是'我們想要的集合',因為asList方法接收的是一個泛型的變長參數。

而基本數據類型是無法被泛型化的,這樣的話對于泛型而言,基本數據類型會被作為一個'[x'的類型,'['表示這是一個數組,'x'為當前數組的類型,例如: int[] 實際上它的類型是'[I'

Java踩坑記錄之Arrays.AsList

這樣的話Arrays.asList傳入的參數是基本類型的話,會把數組當做一個元素處理(長度=1),如果我們要遍歷List或獲取List的長度就不準確了,類似下面的用法:

int array[] = {1,2,3,4,5};List list = Arrays.asList(array);System.out.println('長度='+list.size());System.out.println('是否含有元素3='+list.contains(3));

輸出結果:

長度=1是否含有元素3=false

如果我們的代碼里用到了這樣獲取長度或判斷是否包含指定元素的操作就要注意寫法,否則就會影響我們的邏輯流程!

為避免這樣的問題出現,有很多種其他寫法,比如將array轉成包裝類(即引用類型),如下:

Integer array[] = {1,2,3,4,5};List list = Arrays.asList(array);System.out.println('長度='+list.size());System.out.println('是否含有元素3='+list.contains(3));

輸出結果:

長度=5是否含有元素3=true

當然也可以使用google的集合類'Ints.asList',如下:

int array[] = {1,2,3,4,5};List list = Ints.asList(array);System.out.println('長度='+list.size());System.out.println('是否含有元素3='+list.contains(3));

輸出結果:

長度=5是否含有元素3=true

但是google的Ints.asList方法返回的list也是一個自己實現的集合,同樣不支持add和remove方法,如果既要保證轉換成list后的數據長度正確又要能增刪操作的話,就用java.util.ArrayList吧。

三. Arrays.asList方法返回的是數組的一個視圖,也就是說對這個list的操作都會反映在原數組上

總結

到此這篇關于Java踩坑記錄之Arrays.AsList的文章就介紹到這了,更多相關Java踩坑Arrays.AsList內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
91在线你懂得| 亚洲欧美日韩国产一区| 亚洲国产欧美不卡在线观看| 国产日本欧美一区二区| 高清不卡在线观看| 欧美日韩一二三区| 一区二区三区四区亚洲| 好看的日韩av电影| 国产女人水真多18毛片18精品视频 | 亚洲无毛电影| 中文字幕欧美三区| 91论坛在线播放| 久久精品夜色噜噜亚洲a∨| 成a人片亚洲日本久久| 欧美一区二区三区小说| 国产乱码一区二区三区| 91.com在线观看| 国产毛片精品一区| 欧美丰满美乳xxx高潮www| 日韩av电影一区| 色婷婷久久99综合精品jk白丝| 亚洲国产日产av| 免费在线国产精品| 亚洲不卡在线观看| 久久久天天操| 日韩国产欧美三级| 91久久精品一区二区三| 日本三级韩国三级欧美三级| 久久综合伊人77777麻豆| 日韩精品一二三| 久久久久欧美| 日韩福利视频导航| 欧美视频在线观看一区二区| 激情文学综合网| 欧美性一级生活| 国模无码大尺度一区二区三区| 欧美日韩在线播| 国产一区久久久| 欧美二区乱c少妇| 国产成+人+日韩+欧美+亚洲| 欧美一级久久久久久久大片| 成人午夜在线免费| 久久综合99re88久久爱| 欧美在线1区| 中文字幕中文字幕一区二区| 99在线|亚洲一区二区| 天天色综合天天| 欧美日韩精品一区视频| 国产成人精品午夜视频免费| 精品久久久网站| 欧美日韩亚洲一区| 亚洲激情男女视频| 色美美综合视频| 狠狠色综合播放一区二区| 欧美一二三在线| 91麻豆国产精品久久| 中文字幕在线一区免费| 亚洲欧美日韩国产综合精品二区| 日韩高清不卡一区二区三区| 5月丁香婷婷综合| 色综合久久综合| 亚洲精品日韩专区silk| 久久另类ts人妖一区二区| 久国产精品韩国三级视频| 日韩欧美精品在线| 国产精品99免费看| 亚洲成人777| 3atv一区二区三区| 欧美激情91| 夜夜嗨av一区二区三区中文字幕| 欧美优质美女网站| 成人av片在线观看| 亚洲精品国产第一综合99久久| 在线亚洲高清视频| eeuss影院一区二区三区| 一区视频在线播放| 一本大道久久a久久综合婷婷 | 狠狠色综合网站久久久久久久| 亚洲精品亚洲人成人网| 欧美日韩在线播放三区四区| 91社区在线播放| 亚洲一区二区欧美日韩| 欧美老年两性高潮| 国产精品啊v在线| 麻豆视频一区二区| 久久精品欧美一区二区三区麻豆| 99精品视频网| 国产精品一区二区视频| 国产精品夫妻自拍| 欧美亚洲丝袜传媒另类| 99在线精品观看| 亚洲妇熟xx妇色黄| 欧美电影免费观看高清完整版| 国产精品大全| 久久精工是国产品牌吗| 国产女同互慰高潮91漫画| 在线精品视频小说1| 欧美高清视频一区二区三区在线观看| 爽好多水快深点欧美视频| 日韩美女在线视频 | 国产欧美日韩一级| 成人丝袜18视频在线观看| 夜夜操天天操亚洲| 日韩精品专区在线影院观看 | 国产电影一区在线| 亚洲视频资源在线| 91麻豆精品国产综合久久久久久| 一区视频在线| 国产精品资源网| 一区二区三区四区五区视频在线观看| 日韩女优制服丝袜电影| 国产精品区二区三区日本| 久久疯狂做爰流白浆xx| 国产精品福利一区二区| 欧美乱妇20p| 亚洲综合另类| 欧美成ee人免费视频| 黄色日韩三级电影| 一区二区在线观看免费视频播放| 日韩视频免费观看高清在线视频| 99亚洲精品| 99精品视频在线观看| 日本三级亚洲精品| 亚洲三级免费观看| 精品日韩一区二区三区| 色婷婷av一区二区三区gif| 午夜精品视频在线观看一区二区| 久久国产剧场电影| 亚洲综合成人网| 欧美激情一区二区三区四区| 在线电影院国产精品| 亚洲一区尤物| 欧美日韩国产欧| 国产成人夜色高潮福利影视| 日韩专区欧美专区| 亚洲精选视频免费看| 国产日产欧美一区| 欧美一级片在线| 在线看一区二区| 亚洲永久在线| 狠狠爱www人成狠狠爱综合网| 成人免费精品视频| 国产精品亚洲午夜一区二区三区 | 国产一区免费视频| 成人爽a毛片一区二区免费| 人禽交欧美网站| 亚洲自拍与偷拍| 一区精品在线播放| 国产亚洲精品福利| 精品对白一区国产伦| 欧美日韩1234| 欧美午夜一区二区三区免费大片| 国产一区二区精品| 国模吧视频一区| 色综合亚洲欧洲| 成人黄色软件下载| 国产一区二区导航在线播放| 男女性色大片免费观看一区二区| 亚洲国产精品欧美一二99| |精品福利一区二区三区| 精品久久久久久亚洲综合网| 在线不卡中文字幕| 欧美在线免费播放| 色哟哟欧美精品| 性色一区二区三区| 国产乱人伦精品一区二区| 国产私拍一区| 一区二区三区导航| 亚洲激精日韩激精欧美精品| 欧美日韩国产高清| 欧美一区国产一区| 91免费看片在线观看| 成人av在线电影| 国产成a人无v码亚洲福利| 国产乱国产乱300精品| 久久精品国产色蜜蜜麻豆| 蜜桃av噜噜一区二区三区小说| 视频在线观看91| 亚洲第一综合色| 午夜欧美视频在线观看 | 亚洲高清视频在线| 亚洲成人免费在线观看| 亚洲成av人片在线| 午夜精品在线看| 麻豆久久一区二区| 国模大尺度一区二区三区| 看国产成人h片视频| 精品在线亚洲视频| 狠狠色综合日日| 大桥未久av一区二区三区中文| 豆国产96在线|亚洲| www.激情成人| 欧美一区不卡| 国产精品v欧美精品v日韩 | 这里是久久伊人| 欧美大片日本大片免费观看| 欧美成人a∨高清免费观看| 26uuu精品一区二区| 欧美国产视频在线| 亚洲欧美偷拍三级|