模仿原始碼自定義ArrayList

2021-07-11 16:53:10 字數 1343 閱讀 3995

最近看了下arraylist的原始碼,抽空根據arraylist的底層結構寫了乙個功能簡單無泛型的自定義arraylsit,幫助自己更好理解arraylist:,其實現的底層資料結構為數object組,**如下:

/**

* 自己實現乙個arraylist

* */

public class myarraylist

public boolean isempty()

//預設容量為10

public myarraylist()

/*** 自定義容量

* @param initialcapacity

*/public myarraylist(int initialcapacity) catch (exception e)

} elementdata = new object[initialcapacity];

} /**

* 新增乙個元素

* @param obj

*/public void add(object obj)

elementdata[size++]=obj;

// size++;

} /**

* 通過索引獲取元素

* @param index

* @return

*/public object get(int index)

/*** 通過索引刪除元素

* @param index

*/public void remove(int index)

elementdata[--size] = null; // let gc do its work

} /**

* 刪除對應的元素(利用equal判斷元素是否一致)

* @param obj

*/public void remove(object obj) catch (exception e)

} }

public static void main(string args)

system.out.println("------------------------------");

list.remove("444");

list.add(2, "a");

for (int i = 0; i < list.size(); i++)

}}

測試結果:

333444

5344433

333333

------------------------------

3335

a344433

333333

自定義屬性提取原始碼分析

原始碼分析基於android 5.0,自定義view的 黃色別墅使用示例如下 其中attrs標識customtitleview對應的節點屬性集合 obtainstyledattributes的作用是將attrs屬性集合中 指定的部分 的屬性進行封裝,屬於container的角色,呼叫過程如下 因此t...

Spring 原始碼解析 自定義標籤

零.閱讀準備 讀這篇文章前先看下預備知識 spring 自定義標籤 一.閱讀 自定義標籤解析核心 public beandefinition parsecustomelement element ele,beandefinition containingbd return handler.parse...

mybatis原始碼分析 自定義外掛程式

mybatis在四大元件 execurot,statementhandler,parameterhandler,resultsethandler 處提供了簡單易用的外掛程式擴充套件機制。mybatis支援對四大核心物件進行攔截,對mybatis來說外掛程式就是 用來增強核心物件功能,增強功能的本質上...