第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

巧用ArrayList中subList方法,規(guī)避哪些大坑

標(biāo)簽:
Java

List集合是我们大家在开发中经常用到的集合,而作为它的实现类ArrayList是我们最经常使用的实现类了,不多说,长度自动扩容,非常好用,但其中也有好多方法存在大坑,今天我们就来分析以下List集合中**subList(int fromIndex, int toIndex)**方法

相信大家在使用集合时有时会有这一需求,就是只需要返回这个集合中的指定段集合
这个时候subList(int fromIndex, int toIndex)方法就上场了,但在用这个方法的时候一定要注意以下坑

  1. 调用subList()方法之后便不能再对原有集合进行增加或删除,一旦删除或增加,再去遍历subList()方法的返回集合,便报出并发修改异常 ,如以下代码
List<Integer> arrayList  = new ArrayList<Integer>();
    arrayList.add(10);
    arrayList.add(20);
    arrayList.add(30);
    arrayList.add(40);
    arrayList.add(50);
    List<Integer> ss =  arrayList.subList(1, 3);
    arrayList.remove(0);
   for(int i=0;i<ss.size();i++){
     System.out.println(ss.get(i));
   }
   //结果
   Exception in thread "main" java.util.ConcurrentModificationException
	at java.util.ArrayList$SubList.checkForComodification(ArrayList.java:1231)
	at java.util.ArrayList$SubList.size(ArrayList.java:1040)
	at Testhashs.main(Testhashs.java:22)

  1. subList的返回对象为List,不可强转为ArrayList,如强转,则报出类转换异常,代码如下
List<Integer> arrayList  = new ArrayList<Integer>();
    arrayList.add(10);
    arrayList.add(20);
    arrayList.add(30);
    arrayList.add(40);
    arrayList.add(50);
    List<Integer> ss =  (ArrayList)arrayList.subList(1, 3);
    //结果
  Exception in thread "main" java.lang.ClassCastException: java.util.ArrayList$SubList cannot be cast to java.util.ArrayList
	at Testhashs.main(Testhashs.java:20)

另外注意subList(int fromIndex, int toIndex)截取数据时是前闭后开的,也就是说截取(1,5)包括下标为1的数据,但是不包括5的数据

自此,subList注意事项编写完毕,如有别的注意事项,欢迎指出

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消