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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

027_自己实现一个ArrayList

發(fā)布時間:2025/4/17 编程问答 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 027_自己实现一个ArrayList 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
import java.util.Arrays;/*** 自定義ArrayList*/ public class MyArrayList {private Object[] elementData = {};private int size;/*** 構(gòu)造方法*/public MyArrayList() { }/*** 數(shù)組大小* @return*/public int size() {return size;}/*** 數(shù)組是否為空* @return*/public boolean isEmpty() {return size == 0;}/*** 擴容* @param minCapacity*/private void grow(int minCapacity) {if(minCapacity - elementData.length > 0) {int oldCapacity = elementData.length;int newCapacity = oldCapacity + (oldCapacity >> 1);if(newCapacity - minCapacity < 0) {newCapacity = minCapacity;}elementData = Arrays.copyOf(elementData, newCapacity);}}/*** 檢測下標(biāo)是否越界* @param index*/private void checkRange(int index) {if(index >= size || index < 0) {throw new IndexOutOfBoundsException();}}/*** 添加元素到末尾* @param o* @return*/public boolean add(Object o) {grow(size + 1);elementData[size++] = o;return true;}/*** 添加元素到指定位置* @param index* @param o*/public void add(int index, Object o) {if(!(index <= size && index >= 0)) {throw new IndexOutOfBoundsException();}grow(size + 1);System.arraycopy(elementData, index, elementData, index + 1, size - index);elementData[index] = o;size++;}/*** 根據(jù)下標(biāo)獲取元素* @param index* @return*/public Object get(int index) {checkRange(index);return elementData[index];}/*** 刪除元素* @param index*/private void fastRemove(int index) {int numMoved = size - index - 1;if(numMoved > 0) {System.arraycopy(elementData, index + 1, elementData, index, numMoved);}elementData[--size] = null;}/*** 根據(jù)下標(biāo)刪除元素* @param index* @return*/public Object remove(int index) {checkRange(index);Object oldValue = get(index);fastRemove(index);return oldValue;}/*** 根據(jù)元素刪除數(shù)組中的元素* @param o* @return*/public boolean remove(Object o) {if(o == null) {for(int i = 0; i < size; i++) {if(elementData[i] == null) {fastRemove(i);return true;}}}else {for(int i = 0; i < size; i++) {if(o.equals(elementData[i])) {fastRemove(i);return true;}}}return false;} }

?

總結(jié)

以上是生活随笔為你收集整理的027_自己实现一个ArrayList的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。