第十三天:ArrayList的底層add方法原理,按自己理解重寫了一下
阿新 • • 發佈:2019-01-24
private int size; private Object[] obj;; //1.5,1.6,ArrayList的構造器預設初始化的時候自動賦值為10 //1.7,1.8都是預設為0,提高記憶體的利用效率 public MyArrayList() { obj=new Object[10]; // TODO Auto-generated constructor stub } public MyArrayList(int length) { obj=new Object[length]; } //List中增加元素方法的重寫,我自己的寫法是按jdk1.6的自動擴容 //1.6中沒有定義陣列的最大容量,1.7之後定義最大容量 public boolean add(Object e) { // TODO Auto-generated method stub if(size>obj.length){ Object[] o=new Object[obj.length+obj.length/2]; System.arraycopy(obj,0, o,0, obj.length); obj=o; } obj=Arrays.copyOf(obj, 1); obj[obj.length-1]=e; size++; return true; }
本來打算把list介面所有方法重寫一次,但是發現大致都思路一樣,就是對陣列的操作,所以不寫了。