ArrayList 概念
线性表(linear list)是 n 个具有相同特性的数据元素的有限序列。常见的线性表包括顺序表、链表、栈、队列等。线性表首先是一个序列,元素之间有顺序关系。

usedSize 变量非常重要,增删查改操作都要用到它。
ArrayList 的模拟实现
import java.util.Arrays;
public class MyArrayList {
private int[] elem;
private int usedSize;
private static final int DEFAULT_SIZE = 2;
public MyArrayList() {
this.elem = new int[DEFAULT_SIZE];
}
public MyArrayList(int initCapacity) {
this.elem = new int[initCapacity];
}
// 新增元素,默认在数组最后新增
public void add(int data) {
if (elem.length == usedSize) {
elem = Arrays.copyOf(elem, elem.length * 2);
}
elem[usedSize] = data;
this.usedSize++;
}
// 在 pos 位置新增元素
{
(!checkPos(pos)) {
;
}
(elem.length == usedSize) {
elem = Arrays.copyOf(elem, elem.length * );
}
( usedSize - ; i >= pos; i--) {
elem[i + ] = elem[i];
}
elem[pos] = data;
usedSize++;
}
{
( ; i < usedSize; i++) {
(elem[i] == toFind) {
;
}
}
;
}
{
( ; i < usedSize; i++) {
(elem[i] == toFind) {
i;
}
}
System.out.println();
-;
}
{
(pos < || pos >= usedSize) {
System.out.println();
;
}
;
}
{
(!checkPos(pos)) {
-;
}
elem[pos];
}
{
(!checkPos(pos)) {
;
}
elem[pos] = value;
}
{
.indexOf(data);
(index == -) {
System.out.println();
;
}
( index; i < usedSize - ; i++) {
elem[i] = elem[i + ];
}
.usedSize--;
}
{
.usedSize;
}
{
.usedSize = ;
}
{
( ; i < usedSize; i++) {
System.out.print(.elem[i] + );
}
}
}





