日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

集合框架(四)

發布時間:2025/5/22 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 集合框架(四) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

常用Collection之ArrayList

一、繼承關系

AbstractCollection<—AbstractList<—ArrayList

二、原理

transient Object[] elementData; //elementData用來存放數據 底層是用array實現完成的

三、構造方法

public ArrayList(int initialCapacity);//創建一個初始容量為initialCapacity的Object數組public ArrayList();//創建一個初始容量為10的Object數組(調用構造方法時,僅僅創建一個空數組,調用add方法時重新創建數組,數組長度為默認值10) public ArrayList(Collection<? extends E> c);//先將c轉為數組,并賦值給elementData,然后elementData數組類型向上轉型為Object

四、常用方法實現原理

1、private void grow(int minCapacity);//改變數組長度,起增長方式為每次增加原數組長度的一半{int newCapacity = oldCapacity + (oldCapacity >> 1);}2、public Object[] toArray();//調用Arrays.copyOf()方法{return Arrays.copyOf(elementData, size);} 3、public boolean add(E e);//如果元素元素為空,該方法會使得容量最小為10{if (elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA) { minCapacity = Math.max(DEFAULT_CAPACITY, minCapacity); }} 4、public void add(int index, E element);//{System.arraycopy(elementData, index, elementData, index + 1,size - index);}將源數組從index處開始復制到目標(自身)從index+1處開始,然后將index處的值重設為element 5、public boolean remove(Object o) ;//遍歷數組,找到o所在的index,刪除index,并調用fastRemove(int index)方法,將index右面的數據整體左移6、private void fastRemove(int index);//{System.arraycopy(elementData, index+1, elementData, index, numMoved); elementData[--size] = null; }7、 public Iterator<E> iterator();//{return new Itr();}Itr為內部類

五、迭代器實現

注:cursor沒有手動設初始值(int型默認值為0,創建對象時,便會進行初始化動作),我一眼看到也是一眼懵逼。 hasNext()方法和next()方法還有remove()方法實現原理還是相對簡單。 private class Itr implements Iterator<E> { int cursor; // index of next element to returnint lastRet = -1; // index of last element returned; -1 if no suchint expectedModCount = modCount;public boolean hasNext() {return cursor != size; }@SuppressWarnings("unchecked")public E next() {checkForComodification(); int i = cursor; if (i >= size)throw new NoSuchElementException();Object[] elementData = ArrayList.this.elementData;if (i >= elementData.length)throw new ConcurrentModificationException();cursor = i + 1;return (E) elementData[lastRet = i];}public void remove() {if (lastRet < 0)throw new IllegalStateException();checkForComodification();try {ArrayList.this.remove(lastRet);cursor = lastRet;lastRet = -1;expectedModCount = modCount;} catch (IndexOutOfBoundsException ex) {throw new ConcurrentModificationException();}}@Override@SuppressWarnings("unchecked")public void forEachRemaining(Consumer<? super E> consumer) {Objects.requireNonNull(consumer);final int size = ArrayList.this.size;int i = cursor; if (i >= size) {return;}final Object[] elementData = ArrayList.this.elementData;if (i >= elementData.length) {throw new ConcurrentModificationException();}while (i != size && modCount == expectedModCount) {consumer.accept((E) elementData[i++]);}// update once at end of iteration to reduce heap write trafficcursor = i;lastRet = i - 1;checkForComodification();}final void checkForComodification() {if (modCount != expectedModCount)throw new ConcurrentModificationException();} }

六、總結

以array實現完成的List。允許快速訪問和隨機訪問,但當元素的安插或移除發生在List中央位置時,效率很差(從原數組到原數組復制,查看add(index,ele)方法可知)。可以選擇ArrayList遍歷走訪元素,如果有較多的插入和移除動作,最好選擇LinkedList(將在"集合框架(六)"中介紹)。

轉載于:https://www.cnblogs.com/realsoul/p/5702224.html

總結

以上是生活随笔為你收集整理的集合框架(四)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美国产视频 | 成年人性生活免费视频 | 日本老师巨大bbw丰满 | www.com国产| 精品无码久久久久久久 | 多毛的亚洲人毛茸茸 | 日本三级中文字幕在线观看 | 米奇7777狠狠狠狠视频 | 91九色在线播放 | 又色又爽又黄 | 看片网址国产福利av中文字幕 | 中国国产黄色片 | 精品无码av一区二区三区 | 日本黄大片在线观看 | 日本美女裸体视频 | 国产av无码国产av毛片 | 日韩激情视频 | 成人做爰66片免费看网站 | 波多野结衣在线观看视频 | 成人小视频在线免费观看 | 高清国产一区二区三区四区五区 | 自拍 偷拍 欧美 | 公车乳尖揉捏酥软呻吟 | 天天综合av| 红桃一区二区三区 | 春宵av| 国产成人无遮挡在线视频 | 制服诱惑一区二区 | 白石茉莉奈番号 | 日本久久久久 | 午夜免费在线观看 | 欧美福利网址 | 在线你懂得| 麻豆资源 | 在线不卡一区 | 国产女人18水真多毛片18精品 | 日韩不卡在线 | 久久精品www人人爽人人 | 免费黄色成人 | 久久久久国产精品区片区无码 | 日韩欧美网址 | 午夜黄色大片 | 欧美揉bbbbb揉bbbbb | 国产剧情一区在线 | 嫩草一区 | 国产三级国产精品国产国在线观看 | 日韩少妇一区 | 欧美日韩国产精品综合 | 亚洲精品www久久久久久 | 国产欧美网站 | www.成人网| 手机在线看片你懂的 | 亚洲最大的成人网 | 寂寞d奶大胸少妇 | 精品中文视频 | 欧美v在线 | 国产精品一区无码 | www.一区| 国产精品7777777 | 午夜精品电影 | 国产一区二区三区影院 | 好男人www社区 | 亚洲欧美日韩另类 | 亚洲视频久久久 | 欧洲一区二区在线观看 | 亚洲永久精品一区二区 | 少妇久久久久久久久久 | 国产一区二区三区四区视频 | 特级新鲜大片片 | 国产欧美精品在线观看 | www.麻豆av| 久操操 | wwwxxxx在线观看 | 黑人黄色一级片 | 亚洲三级黄色片 | 在线观看污污视频 | 久久爱伊人 | 99精品视频在线看 | 中文字幕在线日亚洲9 | 97caop| 欧美在线播放一区二区 | 爱搞国产 | 在线国产一区二区 | 夫妻性生活黄色大片 | 亚洲精品一区二区三区四区 | 国产精品久久久久久三级 | 午夜视频在线观看视频 | 麻豆精品视频在线 | 精品av一区二区 | 日韩不卡一二区 | 国产精品日韩欧美 | 麻豆免费在线观看 | 人人澡人人澡 | 肉色丝袜小早川怜子av | 美女18毛片 | 自拍偷拍亚洲视频 | 欧美亚洲精品一区二区 | 蘑菇av| 久久久www成人免费无遮挡大片 |