目录
一.前言:
Arraylist和Linkedlist都是继承自List接口,方法都基本相同——功能相同。但是他们的实现方式却不同。所以对于相同的操作,两者的效率可能也会不同。
数据结构中的线性表有两种表现形式,一种按顺序存储的顺序表,一种链式存储的链表。而Arraylist就是以数组为基础,顺序表存储实现的。
LinkedList是是以链表为基础实现的。
这篇博客只是简单的实现Arraylist的增删改查功能,没有写构造方法和其他的属性和方法。如有需要改进的,还请指正。
二.ArrayList实现:
2.1思路分析:
1.Arraylist是以数组实现的,所以我们首先可以定义一个长度为10,类型为object的数组作为属性。
Object array[]=new Object[10];
2.1.1 add()方法:
add方法的作用是添加元素到集合,也就是把元素对象添加到数组中,这个怎么操作呢?
List集合是有索引确定位置的,我们每次完成一次赋值,那么数组的索引值加一。增加一个成员变量count用来计数增加的元素个数,同时也可以算作索引值。
代码:
@Override
public boolean add(Object o) {
grow();
System.out.println("扩容之后的长度"+array.length);
array[count]=o;
count++;
return true;
}
注意点:
add方法是有两个的,这个是重载另一个add方法:
作用是:把元素插入确定的索引位置。
插入到对应位置之后,那么后面的值就要对应的往后移,来个插入的元素腾出位置。用代码怎么表示这个后移的过程呢?
先看图: