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特有的!

5List接口的子类

Vector:内部是数组数据结构是线程安全的增删查询都很慢

ArrayList:内部是数组数据结构是不同步的代替了vector,查询的速度快。

内存原理:

在arrayList集合中,是一种线性表,每个对象存储都是有序的,用角标确定对象所存储的位置,查询时,直接通过角标进行查询,速度会很快,但是如果要进行增添、修改、删除操作的话,就要影响后面角标的对象,大部分对象都要移动,直接影响运行效率。

ListkedList:内部是链表数据结构是不同步增删元素的速度很快

内存原理:

LinkedList是一种链式存储方式,在每个对象中都存储有下一个对象的地址。所以要查询集合中的对象,必须通过地址值来逐个访问,首先从表头开始,逐一向下一个进行询问,直到找到为止,所以这样导致查询对象相对于arrayList来说非常慢,但是他有一个优点,增加、删除、修改就很快,如果要增加一个对象,直接把这个对象的地址赋给上一个对象,并存储下一个对象的地址。所以修改和删除也是对地址进行操作。大大提高运行效率。

posted @ 2020-08-22 14:28  十月初生  阅读(130)  评论(1)    收藏  举报