摘要:

  List 是 Java Collection Framework的重要成员,详细包括List接口及其全部的实现类。由于List接口继承了Collection接口,所以List拥有Collection的全部操作。

同一时候。又由于List是列表类型,所以List本身还提供了一些适合自身的方法。ArrayList 是一个动态数组。实现了数组动态扩容,随机訪问效率高;LinkedList是一个双向链表,随机插入和删除效率高,可用作队列的实现。


一. 要点

  1. List 基础特性与框架
  2. ArrayList :动态数组
  3. LinkedList : 双向链表

二. List 基础特性与框架

1、List 特色操作

  List 包括 List接口 以及 List接口的全部实现类(ArrayList, LinkedList, Vector,Stack), 当中 Vector 和 Stack 已过时。

由于 List 接口实现了 Collection 接口(如代码 1 所看到的)。所以 List 接口拥有 Collection 接口提供的全部经常用法,同一时候,又由于 List 是列表类型,所以 List 接口还提供了一些适合于自身的经常用法。如表1所看到的。

// 代码 1
public interface List<E> extends Collection<E> { ... }

                   表1. List 特有的方法(以AbstractList为例说明)

Function Introduction Note
boolean addAll(int index, Collection<? extends E> c) 将指定 collection 中的全部元素都插入到列表中的指定位置 可选操作
E get(int index)| 返回列表中指定位置的元素 在 AbstractList 中以抽象方法 abstract public E get(int index); 存在 AbstractList 中唯一的抽象方法
E set(int index, E element) 用指定元素替换列表中指定位置的元素 可选操作。set 操作是 List 的特有操作
void add(int index, E element) 在列表的指定位置插入指定元素 可选操作
E remove(int index) 移除列表中指定位置的元素 可选操作
int indexOf(Object o) 返回此列表中第一次出现的指定元素的索引。假设此列表不包括该元素,则返回 -1 在 AbstractList 中默认实现;在 ArrayList,LinkedList中分别重写;
int lastIndexOf(Object o) 返回此列表中最后出现的指定元素的索引。假设列表不包括此元素,则返回 -1 在 AbstractList 中默认实现;在 ArrayList,LinkedList中分别重写;
ListIterator<E> listIterator() 返回此列表元素的列表迭代器(按适当顺序) 在 AbstractList 中默认实现。ArrayList,Vector和Stack使用该默认实现。LinkedList重写该实现;
ListIterator<E> listIterator(int index) 返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置開始

posted on
2017-08-17 18:45 
cynchanpin 
阅读(...) 
评论(...) 
编辑 
收藏

Java Collection Framework : List的更多相关文章

  1. java collection framework

    java collection framework Map

  2. Java Collection Framework概述

    文章出自:听云博客 Collection概述 Java collection是java提供的工具包,包含了常用的数据结构:集合.链表.队列.栈.数组.映射等. Java集合主要可以划分为4个部分:Li ...

  3. 集合框架(JCF/Java Collection Framework)

    集合的特点:1.数据的类型可以不同2.集合长度可变3.空间不固定集合也是对象,用于检索,存储以及传输对象集合框架的组成Collection接口和Map接口 Collection是Set接口和List接 ...

  4. 设计: ListView 接口,and the missing read-only interfaces in java collection framework

    Java的集合框架以其成功易用的设计征服了很多人(包括我),并且教科书式的诠释了泛型的应用方式. 我也是被 Joshua Bloch 的书引领入门,从中得益良多.我当然不会认为自己在设计上比他懂得更多 ...

  5. Java Collection Framework 备忘点

    最顶端是两个接口,集合和映射——  Collection<T>  /  Map<K, V> List 列表 保持插入顺序 ArrayList 擅长随机读 LinkedList ...

  6. Java Collections Framework知识结构目录

    The core collection interfaces are the foundation of the Java Collections Framework. The Java Collec ...

  7. 【DataStructure】The description of Java Collections Framework

    The Java Connections FrameWork is a group of class or method and interfacs in the java.util package. ...

  8. (一)一起学 Java Collections Framework 源码之 概述

    . . . . . 目录 (一)一起学 Java Collections Framework 源码之 概述 JDK 中很多类 LZ 已经使用了无数次,但认认真真从源码级研究过其原理的还只占少数,虽然从 ...

  9. (二)一起学 Java Collections Framework 源码之 AbstractCollection

    . . . . . 目录 (一)一起学 Java Collections Framework 源码之 概述(未完成) (二)一起学 Java Collections Framework 源码之 Abs ...

随机推荐

  1. win10下sublime text3 使用view in browser的快捷鍵添加方式

    key-binding-user,于是,我在那里输入: [  { "keys": ["ctrl+b"], "command": " ...

  2. 阿里云服务器(windows)配置项目域名

    一.数据库是放在阿里云上!二.项目部署到服务器上,tomcat会一直运行(除非你手动停止)三.设置域名及tomcat配置(1)在阿里云控制台上的域名解析设置中添加记录,将域名映射到你的阿里云esc公网 ...

  3. 002.NTP服务端搭建

    一 安装及准备 1.1 安装NTP [root@server ~]# yum -y install ntp #也可下载之后rpm安装,或者源码安装 1.2 NTP服务地址 http://www.ntp ...

  4. C#开发Unity游戏教程之Unity中方法的参数

    C#开发Unity游戏教程之Unity中方法的参数 Unity的方法的参数 出现在脚本中的方法,无论是在定义的时候,还是使用的时候,后面都跟着一对括号“( )”,有意义吗?看起来最多也就是起个快速识别 ...

  5. 我的php.ini上传文件配置

    可以通过phpinfo查看.当前的配置信息 # php -i | grep php.ini              //查看php.ini位置 file_uploads = on          ...

  6. Linux C语言编程学习笔记 (1)进程控制入门

    想进行Linux系统开发已经很久了,一直没有付诸实践.今日终于开始学习Linux下的C语言编程,研究一天,终于大概弄明白了Linux系统进程管理的一些基本概念和编程方法,总结下来以方便大家学习和自己实 ...

  7. hdu 1507 记录路径的二分匹配 **

    题意:N*M的矩形,向其中填充1*2的小块矩形,黑色的部分不能填充,问最多可以填充多少块.链接:点我 黑白棋最大匹配 将棋盘中i+j为奇数的做A集合,偶数的做B集合,相邻的则建立联系.于是便转换成寻找 ...

  8. OpenVPN使用easy-rsa3吊销证书

    cd /etc/easy-rsa ./easyrsa revoke targetkey(证书名) ./easyrsa gen-crl 其中gen-crl会生成一份吊销证书的名单,放在pki/crl.p ...

  9. 【转载】Android dip,px,pt,sp 的区别

     dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不依赖像素. ...

  10. General PE format layout