当前位置 : 首页 » 文章分类 :  开发  »  Java-List

Java-List

[TOC]


interface List<E>

java.util.List
public interface List<E> extends Collection<E>

有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。

size()

int size()
返回列表中的元素数。如果列表包含多于 Integer.MAX_VALUE 个元素,则返回 Integer.MAX_VALUE

isEmpty()

boolean isEmpty()
如果列表不包含元素,则返回 true

contains()

boolean contains(Object o)
如果列表包含指定的元素,则返回 true。更确切地讲,当且仅当列表包含满足 (o==null ? e==null : o.equals(e)) 的元素 e 时才返回 true。

addAll()

boolean addAll(Collection<? extends E> c)
添加指定 collection 中的所有元素到此列表的结尾,顺序是指定 collection 的迭代器返回这些元素的顺序(可选操作)。

  • 抛出:
    • UnsupportedOperationException - 如果列表不支持 addAll 操作
    • ClassCastException - 如果指定 collection 的元素的类不允许它添加到此列表
    • NullPointerException - 如果指定的 collection 包含一个或多个 null 元素,并且该列表不允许 null 元素,或者指定的 collection 为 null
    • IllegalArgumentException - 如果指定 collection 的元素的某些属性不允许它添加此列表

class ArrayList<E>

java.util.ArrayList
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable

List 接口的大小可变数组的实现。
每个 ArrayList 实例都有一个容量。该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向 ArrayList 中不断添加元素,其容量也自动增长。并未指定增长策略的细节,因为这不只是添加元素会带来分摊固定时间开销那样简单。

注意,此实现不是同步的。如果多个线程同时访问一个 ArrayList 实例,而其中至少一个线程从结构上修改了列表,那么它必须 保持外部同步。(结构上的修改是指任何添加或删除一个或多个元素的操作,或者显式调整底层数组的大小;仅仅设置元素的值不是结构上的修改。)


class LinkedList<E>

java.util.LinkedList
public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, Serializable

List 接口的链接列表实现。
除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列。
此类实现 Deque 接口,为 add、poll 提供先进先出队列操作,以及其他堆栈和双端队列操作。
注意,此实现不是同步的。


参考

《深入理解Java集合框架》系列文章
http://www.cnblogs.com/CarpenterLee/p/5545987.html


上一篇 Java-Map

下一篇 Java-字符串

域名迁移公告
2017年12月20日起,本博客迁移到新域名madaimeng.com,旧域名masikkk.com不再更新内容,但将永久保持可访问!
阅读
714
阅读预计3分钟
创建日期 2015-07-17
修改日期 2017-07-23
类别
标签
百度推荐