1.9各种集合底层实现.doc:object[]代码片段:构造方式publicArrayList(){this(10);//默认一开始构造了size为10的Object数组}publicArrayList(intinitialCapacity){super();if(initialCapacity<0)thrownewIllegalArgumentExceptionC'IUegalCapacity:"+initialCapacity);=newObject[initialCapacity];}优缺点:读快改慢linkedList:Entry链表,单向链表header・next==header;优缺点:读慢改快HashMap:Entry[]publicHashMap(){=DEFAULT_LOAD_FACTOR;threshold=(int)(DEFAULT_INITIAL_CAPACITY*DEFAULT_LOAD_FACTOR);table=newEntry[DEF4L/LT_INITIAL_CAPACITY];//构建Entry数组init();}publicVget(Objectkey){//获取的时候从数组屮读取if(key==nu11)returngetForNullKey();inthash=hash(());for(Entry<K>V>e=table[indexFor(hastable・length)];e!=nu11;e=e・next){Objectk;if(==hash&&((k=)==key||(k)))returne・value;}“eturnnull;}//put方法put的时候需耍首先遍历数组的,看是否有重复的keypublicVput(Kkey,Vvalue){if(key==nu11)returnputForNullKey(value);inthash=hash(key・hashCode());inti=indexFor();for(Entry<K,V>e=table[i];e!=null;e=){Objectk;if(==hash&&((k=)==key||(k))){VoldValue=e・value;e・value=value;e・ess(this);returnoldValue;}}modCount++;addEntry(hash,key,value,i);returnnu11;}TreeMap:基于Entry的二叉树p
1.9各种集合底层实现 来自淘豆网www.taodocs.com转载请标明出处.