List接口
List接口
有序(存入和取出的顺序一致,)元素都有索引(角标),元素可以重复。
特有的常见方法:有一个共性特点就是都可以操作角标,可以完成对元素的增删改查。
规律:凡是有索引的容器,都有增删改查的方法。
1、添加
void add(index,element):在指定位置增加元素
void add(index,collection):在指定位置添加集合
2、删除
Object remove(index):删除指定的元素----获取并删除
3、修改
Object set(index,element):在指定位置改变元素,并返回被替换掉的元素。
4、获取
Object get(index):获取指定的元素;
int subList(startindex,iendndex):获取子列表;
int indexOf(object ):返回对象所在的位置;
int lastIndexOf(object):返回对象最后出现的位置;
ListIterator:拥有了对元素进行增删改查的方法------->list特有的!
5、List接口的子类
Vector:内部是数组数据结构,是线程安全的。增删查询都很慢!
ArrayList:内部是数组数据结构,是不同步的,代替了vector,查询的速度快。
内存原理:
在arrayList集合中,是一种线性表,每个对象存储都是有序的,用角标确定对象所存储的位置,查询时,直接通过角标进行查询,速度会很快,但是如果要进行增添、修改、删除操作的话,就要影响后面角标的对象,大部分对象都要移动,直接影响运行效率。
ListkedList:内部是链表数据结构,是不同步的,增删元素的速度很快。
内存原理:
LinkedList是一种链式存储方式,在每个对象中都存储有下一个对象的地址。所以要查询集合中的对象,必须通过地址值来逐个访问,首先从表头开始,逐一向下一个进行询问,直到找到为止,所以这样导致查询对象相对于arrayList来说非常慢,但是他有一个优点,增加、删除、修改就很快,如果要增加一个对象,直接把这个对象的地址赋给上一个对象,并存储下一个对象的地址。所以修改和删除也是对地址进行操作。大大提高运行效率。

浙公网安备 33010602011771号