关闭

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

156人阅读 评论(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网站的观点或立场

java集合框架05——ArrayList和LinkedList的区别

前面已经学习完了List部分的源码,主要是ArrayList和LinkedList两部分内容,这一节主要总结下List部分的内容。 List概括 先来回顾一下List在Collection中的的框架图...
  • eson_15
  • eson_15
  • 2016-04-13 20:39
  • 8722

Java集合框架之List---ArrayList与LinkedList源码分析

一、 ArrayList概述: ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。   ArrayList不是线程安全的,只能用在单线程...
  • oChangWen
  • oChangWen
  • 2016-01-26 13:51
  • 3169

java中List接口的实现类 ArrayList,LinkedList,Vector 的区别 list实现类源码分析

java面试中经常被问到list常用的类以及内部实现机制,平时开发也经常用到list集合类,因此做一个源码级别的分析和比较之间的差异。 首先看一下List接口的的继承关系: list接口继承Col...
  • qq_30739519
  • qq_30739519
  • 2016-03-13 12:49
  • 11098

JavaSE入门学习35:Java集合框架之List接口及其实现类ArrayList和LinkedList

一List接口概述        List接口是Collection接口的子接口,实现List接口的集合类中的元素是有顺序的,而且可以重复,被称为序列。        List集合中的元素都对应一个整...
  • erlian1992
  • erlian1992
  • 2016-05-02 17:01
  • 3417

Java集合框架之List---ArrayList与LinkedList源码分析

一、 ArrayList概述: ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。   ArrayList不是线程安全的,只能用在单线程...
  • oChangWen
  • oChangWen
  • 2016-01-26 13:51
  • 3169

java集合框架之List------03_02 ArrayList Vector LinkedList

Vector和ArrayList是List的两个典型的实现,底层都是基于一个动态的,允许再分配的Object数组。数组默认长度为10。可以使用ensureCapacity()方法来增加数组长度。详见j...
  • Genius_zz
  • Genius_zz
  • 2016-10-05 12:03
  • 271

08.集合框架(一)【集合概述】【接口Collection,Iterator,List,ListIterator】【类LinkedList,ArrayList】

一.集合概述 1.      集合类的由来 对象用于封装特有数据,对象多了需要存储,如果对象个数不确定,就使用集合容          器进行存储。 2....
  • u011374699
  • u011374699
  • 2013-10-30 13:53
  • 672

Java集合之三List接口及其实现类ArrayList、LinkedList、Vector

List List是一个接口,List集合中元素有序、且可重复,集合中的每个元素都有其对应的顺序索引,可以根据序号存取容器中的元素。List接口的实现类常用的有:ArrayList、LinkedLis...
  • WYA1993
  • WYA1993
  • 2017-12-17 19:34
  • 82

Java泛型集合结构,List<T>,及其子类ArrayList<T>,LinkedList<T>的使用

学习内容: 集合: 1.List:存储有序的,可重复的元素。 2.Set:存储是无序的,不允许重复元素。 3.集合List,及其子类ArrayList,LinkedList的使用 明白其来源及其存...
  • yingtian648
  • yingtian648
  • 2016-07-06 08:51
  • 3130

Map+List+ArrayList+LinkedList Java源码

  • 2010-07-01 15:19
  • 696KB
  • 下载
    个人资料
    • 访问:46440次
    • 积分:1341
    • 等级:
    • 排名:千里之外
    • 原创:93篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条
    文章分类