Java项目中如何实现自定义ArrayList
本篇文章为大家展示了Java 项目中如何实现自定义ArrayList,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

我们提供的服务有:成都网站设计、成都网站建设、微信公众号开发、网站优化、网站认证、仙桃ssl等。为千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的仙桃网站制作公司
Java 中模仿源码自定义ArrayList
最近看了下ArrayList的源码,抽空根据ArrayList的底层结构写了一个功能简单无泛型的自定义ArrayLsit,帮助自己更好理解ArrayList:,其实现的底层数据结构为数Object组,代码如下:
/**
* 自己实现一个ArrayList
*
*/
public class MyArrayList {
private Object[] elementData;
private int size;
public int size(){
return size;
}
public boolean isEmpty(){
return size==0;
}
//默认容量为10
public MyArrayList(){
this(10);
}
/**
* 自定义容量
* @param initialCapacity
*/
public MyArrayList(int initialCapacity){
if(initialCapacity<0){
try {
throw new Exception();
} catch (Exception e) {
e.printStackTrace();
}
}
elementData = new Object[initialCapacity];
}
/**
* 添加一个元素
* @param obj
*/
public void add(Object obj){
//数组扩容和数据的拷贝,重新new一个数组
if(size==elementData.length){
Object[] newArray = new Object[size*2+1];
System.arraycopy(elementData, 0, newArray, 0, elementData.length);
elementData = newArray;
}
elementData[size++]=obj;
// size++;
}
/**
* 通过索引获取元素
* @param index
* @return
*/
public Object get(int index){
rangeCheck(index);
return elementData[index];
}
/**
* 通过索引删除元素
* @param index
*/
public void remove(int index){
rangeCheck(index);
int numMoved = size - index - 1;
if (numMoved > 0){
System.arraycopy(elementData, index+1, elementData, index,
numMoved);
}
elementData[--size] = null; // Let gc do its work
}
/**
* 删除对应的元素(利用equal判断元素是否一致)
* @param obj
*/
public void remove(Object obj){
for(int i=0;i=size){
try {
throw new Exception();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
MyArrayList list = new MyArrayList(3);
list.add("333");
list.add("444");
list.add("5");
list.add("344433");
list.add("333");
list.add("333");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
System.out.println("------------------------------");
list.remove("444");
list.add(2, "a");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
测试结果:
333 444 5 344433 333 333 ------------------------------ 333 5 a 344433 333 333
上述内容就是Java 项目中如何实现自定义ArrayList,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。
网页标题:Java项目中如何实现自定义ArrayList
网页路径:http://www.jxjierui.cn/article/gggpcg.html


咨询
建站咨询
