麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Java > 正文

Java ArrayList的底層實現方法

2024-07-14 08:42:32
字體:
來源:轉載
供稿:網友

如下所示:

package com.soto.collection; /** * 自己實現一個ArrayList,幫助我們更好地理解ArrayList的底層結構; * @author 王 * */public class SxtArrayList {	private Object[] elementData;	private int size;	public int size(){		return size;	}	public boolean isEmpty(){		return size == 0;	}			public SxtArrayList(){		this(10);	}	public SxtArrayList(int initialCapacity){		if(initialCapacity<0){			try {				throw new Exception();			} catch (Exception e) {				e.printStackTrace();			}		}		elementData = new Object[initialCapacity]; //初始化 容量為10 						}	public void add(Object obj){		elementData[size++] = obj; //若超過容量了,那么..數組擴容		if(size==elementData.length){			//實質:搞個新數組			Object[] newarray = new Object[size*2+1];			//數組的copy:			System.arraycopy(elementData, 0, newarray, 0, elementData.length);			elementData = newarray;					}			}	public Object get(int index){		rangeCheck(index);		return elementData[index];	}	public void remove(int index){ 		rangeCheck(index);				 //刪除指定位置對象,刪除某位置,相當于 將后往前挪:		int numMoved = size-index-1;		if(numMoved>0){			System.arraycopy(elementData, index+1, elementData, index, numMoved);		}	}	public void remove(Object obj){		for(int i=0;i<size;i++){			if(get(i).equals(obj)){ //注意底層調用的equals方法而不是==。				remove(i);			}		}	}				private void rangeCheck(int index){		if(index<0||index>size){			try {				throw new Exception();			} catch (Exception e) {				e.printStackTrace();			}		}					}	public Object set(int index, Object obj){		rangeCheck(index);  Object oldValue = elementData[index];  elementData[index] = obj;  return oldValue;		}	public void add(int index, Object obj){		rangeCheck(index);		ensureCapacity(); //擴容		System.arraycopy(elementData, index, elementData, index + 1,    size - index);		elementData[index] = obj;		size++;			}	private void ensureCapacity(){		//擴容				if(size==elementData.length){					//實質:搞個新數組					Object[] newarray = new Object[size*2+1];					//數組的copy:					System.arraycopy(elementData, 0, newarray, 0, elementData.length);					elementData = newarray;					}	}		public static void main(String[] args) {		SxtArrayList list = new SxtArrayList(3);		list.add("222");		list.add("333");		list.add("444");		list.add("555");		list.add("666");		list.add("777");		System.out.println(list.size());		System.out.println(list.get(6));	}	 }

以上這篇Java ArrayList的底層實現方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲第五色综合网 | 久久一区国产 | 国产精品视频二区不卡 | cosplay裸体福利写真 | 日韩精品羞羞答答 | 欧美成人性生活片 | 爱射av| 依依成人精品视频 | 欧美综合在线观看 | 成人毛片免费 | 久久千人斩 | av在线免费网址 | 手机av在线电影 | 欧美黄在线| 久久一区二区三区av | 依依成人综合 | 国产亚洲精品久久久久久大师 | 欧美一区在线观看视频 | 亚州精品国产 | 中文字幕在线观看网址 | 免费国产网站 | 亚洲精品7777 | 最新久久免费视频 | 日日碰日日操 | 成年人在线视频观看 | 国产免费观看视频 | 日韩一级片毛片 | 中文字幕综合在线观看 | av日韩一区二区三区 | 色污视频在线观看 | 久草视频在线资源 | 手机国产乱子伦精品视频 | 国产在线精品一区二区 | 成人免费乱码大片a毛片视频网站 | 欧美亚州| 国产亚洲精品久久久久久久久久 | 欧产日产国产精品v | 男女隐私免费视频 | 久久第四色 | 毛片在线视频观看 | 黄色影院网站 |