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...