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内部实现 ArrayList是Java集合框架中的一种常用数据结构,能够存储任意多个对象,并且可以自由扩展,弥补了数组的定长的缺陷。下面我们将深入探讨ArrayList的内部实现机理。 ArrayList的内部实现机理...
不过,根据标题和描述,这里我们讨论的是一个用C++实现的ArrayList类模板,它采用了双层散列技术来提高性能。这个实现旨在提供高效的数据存储和操作,特别是在处理大量数据时。 首先,让我们深入了解ArrayList的...
java实现ArrayList根据存储对象排序功能示例 java实现ArrayList根据存储对象排序功能示例主要介绍了java中ArrayList的排序功能,通过构建新的比较对象Comparator实现排序操作。本文将详细讲解java中ArrayList的相关...
以下是对如何使用JavaScript实现ArrayList功能的深入探讨,包括相关方法的介绍和一个简单的实例代码。 首先,我们需要理解ArrayList的核心概念。ArrayList是一个可以动态调整大小的数组,它允许我们以特定的顺序...
自己写的ArrayList,请勿喷!
下面,我们将深入探讨如何用C语言实现ArrayList及其相关的知识点。 首先,`Array.c`文件通常会包含ArrayList的核心实现,包括数据结构定义、初始化、添加元素、删除元素、查找元素等函数。在C语言中,我们可以通过...
下面将详细介绍C++实现ArrayList类的关键知识点。 首先,`ArrayList`的核心是动态内存管理。在C++中,我们通常使用`new`运算符来动态分配内存,创建一个可变大小的数组。为了方便管理和释放内存,我们还需要使用`...
面试遇到的一个小的提问,回答的不是很好,自己回来又写了个
本文将深入探讨如何在Android中实现ArrayList关键字查询,并与ListView结合,提供高效且用户友好的搜索功能。 首先,ArrayList是一个动态数组,它允许存储一组有序的元素。在Android中,我们通常用它来存储自定义...
在Eclipse中实现ArrayList和LinkedList,首先需要导入相应的Java集合库,如`import java.util.ArrayList;`和`import java.util.LinkedList;`。接着,可以创建ArrayList或LinkedList对象,添加、删除元素,以及进行...
在C#中,实现ArrayList的线程安全可以通过以下几种方式: 1. 使用`lock`关键字:在访问ArrayList的方法或循环中,可以包裹在`lock`语句块内,确保同一时间只有一个线程能执行该代码。例如: ```csharp private ...
"Java使用数组实现ArrayList的动态扩容的方法" Java中的ArrayList是使用数组实现的,但是数组有一个缺点,就是在创建时就确定了长度,之后就不能更改长度。因此,Java官方提供了ArrayList这个可变长的容器。...
此外,我们还需要提供修改元素的`set(int index, T element)`、获取元素数量的`size()`、清空列表的`clear()`等方法,以实现ArrayList的基本功能。 ```java public T set(int index, T element) { rangeCheck...
模拟ArrayList底层实现 在Java中,ArrayList是一种常用的集合类,提供了许多实用的方法来操作集合数据,而本文则尝试模拟ArrayList的底层实现,通过自定义集合实现类MyArrayList,来实现基本的集合操作。 模拟...
ArrayList是Java集合框架中常用的动态数组,它是List接口的一个实现,允许存储包括null在内的所有元素。ArrayList的主要特点是通过数组来存储元素,提供了丰富的操作方法,包括添加、删除、修改和查询等。下面是...
自定义实现的ArrayList数据结构,有大量注释以及编写思路,帮助新手用Java语言来实现数据结构
用java自己实现的arrayList,比较详细,有助于初学者理解arrayList的基本概念和基础用法
ArrayList是Java编程语言中常用的动态数组,它实现了List接口,提供了丰富的操作方法,适用于需要频繁进行增删改查操作的场景。以下将详细介绍ArrayList的“删改查”方法及其内部原理。 1. 获取元素(Get) ...
虽然JavaScript原生不支持ArrayList,但我们可以利用数组(Array)对象来实现类似的功能。下面将详细介绍如何使用JavaScript来实现基础的ArrayList功能,并探讨在没有参数重载(overload)的情况下如何处理方法的...