关闭

Java集合类框架—List、ArrayList、LinkedList

119人阅读 评论(0) 收藏 举报
分类:

List

  • ArrayList:底层是维护了一个Object数组实现 的。特点: 查询速度快,增删慢。
  • LinkedList:底层是使用了链表数据结构实现的, 特点: 查询速度慢,增删快。
  • Vector:底层也是维护了一个Object的数组实现的,实现与ArrayList是一样的,但是Vector是线程安全的,操作效率低。

List接口中特有方法
添加
add(int index, E element)
addAll(int index, Collection《? extends E》 c)

获取
get(int index)
indexOf(Object o)
lastIndexOf(Object o)
subList(int fromIndex, int toIndex)

修改
set(int index, E element)

迭代
listIterator()

迭代实例

ListIterator特有的方法:

hasPrevious() 判断是否存在上一个元素。
previous() 当前指针先向上移动一个单位,然后再取出当前指针指向的元素。
next(); 先取出当前指针指向的元素,然后指针向下移动一个单位。

add(E e) 把当前有元素插入到当前指针指向的位置上。
set(E e) 替换迭代器最后一次返回的元素。

public static void main(String[] args) {
        List list = new ArrayList();
        list.add("张三");
        list.add("李四");
        list.add("王五");

        System.out.println("======get方法遍历=======");
        for(int i = 0 ; i<list.size() ; i++){
            System.out.print(list.get(i)+",");
        }

        System.out.println("\r\n======使用迭代器正序遍历==========");
        ListIterator it = list.listIterator();  //获取到迭代器
        while(it.hasNext()){
            System.out.print(it.next()+",");
        }

        System.out.println("\r\n======使用迭代器逆序遍历==========");
        while(it.hasPrevious()){
            System.out.print(it.previous()+",");
        }


    }

迭代器在变量元素的时候要注意事项: 在迭代器迭代元素 的过程中,不允许使用集合对象改变集合中的元素 个数,如果需要添加或者删除只能使用迭代器的方法进行操作。

如果使用过了集合对象改变集合中元素个数那么就会出现ConcurrentModificationException异常。

迭代元素 的过程中: 迭代器创建到使用结束的时间。

ArrayList 特有的方法

ensureCapacity(int minCapaci上ty)
trimToSize()

Linkedlist特有的方法

方法介绍
addFirst(E e)
addLast(E e)

getFirst()
getLast()

removeFirst()
removeLast()

返回逆序的迭代器对象
descendingIterator() 返回逆序的迭代器对象

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:36955次
    • 积分:1227
    • 等级:
    • 排名:千里之外
    • 原创:91篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条
    文章分类