手工實現ArrayList

2021-10-09 05:33:59 字數 3070 閱讀 5160

package cn.yishan.mycollection;

/*** 自定義實現乙個arraylist,體會底層原理

* @author yishan

*/public class sxtarraylist01

public sxtarraylist01(int capacity)

public void add(object obj)

@override

public string tostring()

sb.setcharat(sb.length()-1,']');

return sb.tostring();

}public static void main(string args)

}

package cn.yishan.mycollection;

/*** 自定義實現乙個arraylist,體會底層原理

* 增加泛型

* @author yishan

*/public class sxtarraylist02

public sxtarraylist02(int capacity)

public void add(e element)

@override

public string tostring()

sb.setcharat(sb.length()-1,']');

return sb.tostring();

}public static void main(string args)

}

package cn.yishan.mycollection;

/*** 自定義實現乙個arraylist,體會底層原理

* 增加陣列擴容

* @author yishan

*/public class sxtarraylist03

public sxtarraylist03(int capacity)

public void add(e element)

elementdata[size++] = element;

}@override

public string tostring()

sb.setcharat(sb.length()-1,']');

return sb.tostring();

}public static void main(string args)

system.out.println(s1);

}}

package cn.yishan.mycollection;

/*** 自定義實現乙個arraylist,體會底層原理

* 增加set和get方法

* 增加陣列邊界的檢查

* @author yishan

*/public class sxtarraylist04

public sxtarraylist04(int capacity)else if (capacity == 0)else

}public void add(e element)

elementdata[size++] = element;

}public e get(int index)

public void set(e element,int index)

public void checkrange(int index)

}@override

public string tostring()

sb.setcharat(sb.length()-1,']');

return sb.tostring();

}public static void main(string args)

s1.set("hhh",10);

system.out.println(s1);

system.out.println(s1.get(39));

}}

package cn.yishan.mycollection;

/*** 自定義實現乙個arraylist,體會底層原理

* 增加remove方法

* @author yishan

*/public class sxtarraylist05

public sxtarraylist05(int capacity)else if (capacity == 0)else

}public int size()

public boolean isempty()

public void add(e element)

elementdata[size++] = element;

}public e get(int index)

public void set(e element,int index)

public void checkrange(int index)

}public void remove (e element)}}

public void remove(int index)

elementdata[--size] = null;

}@override

public string tostring()

sb.setcharat(sb.length()-1,']');

return sb.tostring();

}public static void main(string args)

s1.set("hhh",10);

system.out.println(s1);

system.out.println(s1.get(39));

s1.remove(3);

s1.remove("山2");

system.out.println(s1);

system.out.println(s1.size);

system.out.println(s1.isempty());

}}

手工實現ArrayList

思路 我們知道arraylist底層是陣列,所以當我們建立arraylist物件時就是呼叫空構造器,讓構造器來幫我們建立好乙個長度為10 自己擬定的長度 的陣列,然後我們可以呼叫內部提供的各種發放來操作arraylist,所以讓我們自己來手寫乙個arraylist。第一步 讓我們由簡單到難分布完成,...

手工實現乙個Arraylist類

public class xjharraylist public xjharraylist int capacity else public void add e e elementdata size e size從0開始自加 先賦值否則應該是 size override public string...

手工實現LinkedList

參照其底層 按照自己的理解實現了linkedlist的一些基本功能。如果對c和c 指標了解一下,理解起來非常快。package cn.liu.mylinkedlist 結點 public class node 構造器,來傳資料 public node object element package c...