public class MyList { private transient Object[] elementData; private int size; public MyList(int initialCapacity) { elementData = new Object[initialCapacity]; } public MyList() { this(10); } public void add(Object obj) { if (size == elementData.length) { Object[] newElementData = increase();// 扩容 elementData = newElementData; } elementData[size++] = obj; } // 扩容方法 public Object[] increase(){ Object[] newElementData = new Object[(size << 1)];// 扩容到2倍 System.arraycopy(elementData, 0, newElementData, 0, elementData.length); return newElementData; } // 删除 public boolean remove(int i) { // 删除不需要考虑库容问题,把后面的索引指向下一个对象,最后一个对象清空 if(i>=0 && i<size){ for (int j = i; j < size; j++) { elementData[j] = elementData[j + 1]; } size--; return Boolean.TRUE; } return Boolean.FALSE; } // 修改 public boolean modify(int i,Object obj) { if(i>=0 && i<size){ elementData[i]=obj; } return Boolean.FALSE; } // 获取某一个 public Object get(int i) { if (i <= size) { return elementData[i]; } return null; } public boolean isEmpty() { return size == 0; } public int size() { return size; } public static void main(String[] args) { MyList list = new MyList(); list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.add("5"); list.add("6"); list.add("7"); list.add("8"); list.add("9"); list.add("10"); list.add("11"); list.add("12"); list.add("13"); list.remove(1); //list.modify(11, 88);// 最后一个改为88 for (int j = 0; j < list.size; j++) { System.out.println(list.get(j)); } System.out.println(list.get(1000)); } }
删除方法用了最原始的方式,并没有用System.arraycopy,其实是一样的
相关推荐
自己写的ArrayList,请勿喷!
1.ArrayList方法摘要 构造方法摘要 ArrayList() 构造一个初始容量为 10 的空列表。 ArrayList(Collection<? extends E> c) 构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器...
采用双层散列实现的一个ArrayList类模板,可以支持20M以上个数的对象的列表,利用双层链表做的一个散列实现,查询、插入的执行效率非常快。
面试遇到的一个小的提问,回答的不是很好,自己回来又写了个
主要介绍了java实现ArrayList根据存储对象排序功能,结合实例形式分析了java针对ArrayList的相关运算、排序操作技巧,需要的朋友可以参考下
浅析ArrayList内部实现 资源源于不但搜索,自由源于不但努力
自定义实现的ArrayList数据结构,有大量注释以及编写思路,帮助新手用Java语言来实现数据结构
用java自己实现的arrayList,比较详细,有助于初学者理解arrayList的基本概念和基础用法
ArrayList的实现原理,利用简单的例子深入解释java中ArrayList的实现原理
用数组实现的线性表,代码介绍可以参见博客:https://blog.csdn.net/qq_41453285/article/details/103198828
主要介绍了Java使用数组实现ArrayList的动态扩容的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
简单模拟java 中的arraylist的底层实现
对ArrayList里装载的对象进行自定义排序(任意对象、任何字段、任何规则) ! ArrayList中可装载任何对象,并以指定的该对象的字段对该集合中的对象进行指定形式的排序(正序、反序)。 任何类通用........
实现ArrayList,封装,组合和面向对象的逻辑的项目 Create a program that implements a simple mobile phone with the following capabilities. Able to store, modify, remove and query contact names. You ...
note实现 1、使用arraylist实现listview 2、实现编辑,新增,删除操作 3、activity间传参实现 4、contextmenu 及 optionmenu实现 5、长按事件处理
ArrayList测试.使用C#实现ArrayList的增加Add(),移动Remove(),删除delect()等功能,过程明了带有注释
此方法是通过java提供的ArrayList方法对栈的实现;
JSP_使用_Session_ArrayList_实现购物车程序
用oop思想实现对ArrayListCRUD,操作的是产品对象,很适合初学者研究。