摘要:

  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. Ubuntu下安装软件提示无法锁定管理目录(/var/lib/dpkg/)的解决办法

    Ubuntu下安装软件提示无法锁定管理目录(/var/lib/dpkg/)的解决办法   在安装软件的时候,有时候提示,无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它? 这是 ...

  2. SpringBoot详细研究-01基础

    Springboot可以说是当前最火的java框架了,非常适合于"微服务"思路的开发,大幅缩短软件开发周期. 概念 过去Spring充满了配置bean的xml文件,随着spring ...

  3. XXX on tree

    %了发树上莫队 nlognsqrt(n) // luogu-judger-enable-o2 #include<bits/stdc++.h> using namespace std; in ...

  4. BZOJ4161 常系数齐次线性递推

    问了数竞的毛毛搞了一番也没太明白,好在代码蛮好写先记下吧. #include<bits/stdc++.h> using namespace std; ,mod=1e9+; int n,k, ...

  5. H5在Android 4.4中WebView兼容性问题

    项目中使用到了Vue.YDUI.webpack,部分页面在Android WebView中出现了样式问题,卡顿等等: 1.promise不识别——需要使用babel-polyfill. 2.由于系统限 ...

  6. node部署静态页面;node上线静态页面

    node部署静态页面上线 静态页面上线可以采用 nginx, tomcat或者node ,我们这里介绍下node部署静态页面 这里采用最简单的上线方式,我们就不用node + express + ej ...

  7. MikroTik RouterOS安装到SATA硬盘

    其实这个问题再5.x以上的版本就已经不存在这个问题,基本现在的版本都支持SATA,如果不支持,估计用的是2.x版本的,那么只需要设置成混合模式(百度)即可.

  8. android 的几个黄色警告解决办法(转)

    转自:http://my.eoe.cn/864234/archive/5162.html 1:Handler 1 2 3 4 5 6 7 8 // This Handler class should ...

  9. Open JTAG Project

    Open JTAG Project is an open source hardware and software for a high speed USB JTAG tool. In this si ...

  10. SPI SWD Protocol Implement

    //================================================================================= // ARM SWD Mode ...