List接口总结:

List接口是Collection接口的子接口,从其名称可以看出,是一个元素有序(并不是按大小排序,具有顺序索引,类似于数组),默认按照元素的添加顺序设置元素的索引,List和Set不同在于List可以具有重复元素,List增加了按照索引插入(add(int index,Object element)方法),替换(set(int index,Object element)方法)和删除集合元素(remove(int index)方法)。List判断元素相同的标准:两个对象equals()方法比较返回true;

常见方法:其中E代表范型。

boolean add(E e) 向列表的尾部添加指定的元素

void add(int index, E element) 在列表的指定位置插入指定元素

void clear() 从列表中移除所有元素

E get(int index) 返回列表中指定位置的元素

boolean contains(Object o) 如果列表包含指定的元素,则返回 true

E set(int index, E element)用指定元素替换列表中指定位置的元素

int size()返回列表中的元素数。

E remove(int index) 移除列表中指定位置的元素

boolean isEmpty() 如果列表不包含元素

ListIterator<E> listIterator()返回此列表元素的列表迭代器。

List类的典型实现:

1.ArrayList

2.Vector

两者均封装了一个容量动态变化的的Object数组。我们无需关心两者的初始化长度,默认的初始化长度为10,当其中的元素数量大于10时,容量会自动的增加。

两者在用法上几乎完全相同。最显著的一个区别:ArrayList是线程不安全的,当有多个线程访问时,须手动实现同步;而Vector是线程安全的,所以Vector的性能较ArrayList低。不推荐使用Vector,即使是需要线程安全。

Vector还提供了Stack子类,实现了“栈”这一数据结构。因此Stack也是线程安全的,性能较差

Queue集合(接口)是用于实现“队列”这种数据结构,特点是先进先出。

Queue的典型实现类:PriorityQueue(优先队列),PriorityQueue保存元素的顺序并不是按照入队的顺序,而是按照大小顺序,即元素按照从小到大的顺序从队头到队尾,这违反了FIFO的原则,其对元素的要求排序方法和前面文章讲述的TreeSet的要求基本一致。

Queue还有一个子接口:Deque,实现了一个双端队列。它有一个典型的实现类:ArrayDeque,是一个基于数组实现的双端队列。可以把ArrayDeque当做栈使用(双端队列当栈,很简单,一端只进不出,一端只出不进),在程序中需要使用栈时,优先使用LinkedList或ArrayDeque,而不是stack,因为性能更加出色。

LinkedList是一个很强大的功能容器,可以用作栈和双端队列(实现了Deque接口)。其内部是链表实现的,因此插入和删除性能较好,迭代访问性能较好,但是不支持随机访问。

JAVA—List集合总结的更多相关文章

  1. 【Java】集合_学习笔记

    一.集合 1.集合类也称容器类,主要负责保存.盛装其他数据. 2.集合可以保存数量不确定的数据,保存具有映射关系的数据(也称关联数组). 3.Java5后提供一些多线程安全的集合类,放在java.ut ...

  2. java的集合框架最全详解

    java的集合框架最全详解(图) 前言:数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作 ...

  3. 谈谈Java的集合组件

    让我们一起谈谈Java的集合组件 我们在使用Java的时候,都会遇到并使用到Java的集合.在这里通过自己的理解和网上的资源对Java的集合方面的使用做一个简单的讲解和总结. Java主要分为3个集合 ...

  4. java.util 集合框架集合

    java的集合框架为程序提供了一种处理对象组的标准方式.设计了一系列标准泛型接口: ⑴Collection ()接口,扩展了Iterable接口,位于集合层次结构的顶部,因此所有的集合都实现Colle ...

  5. Java基础——集合框架

    Java的集合框架是Java中很重要的一环,Java平台提供了一个全新的集合框架.“集合框架”主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型.Java平台的完整集合框架如下图所示: 上 ...

  6. Java学习-集合(转)

    在编写java程序中,我们最常用的除了八种基本数据类型,String对象外还有一个集合类,在我们的的程序中到处充斥着集合类的身影!java中集合大家族的成员实在是太丰富了,有常用的ArrayList. ...

  7. java的集合框架之一

    java是一套很成熟的东西,很多商用的东西都喜欢用它,用的人多,稳定.不过一般也不怎么说起它,因为太常见了,私下里说,写java应用层得就像农民工,每一处都是搭积木,根据设计师的东西如何优雅地搭好积木 ...

  8. 浅谈Java的集合框架

    浅谈Java的集合框架 一.    初识集合 重所周知,Java有四大集合框架群,Set.List.Queue和Map.四种集合的关注点不同,Set 关注事物的唯一性,List 关注事物的索引列表,Q ...

  9. Java之集合初探(一)

    一.集合概述.区别 集合是一种容器,数组也是一种容器 在Java编程中,装各种各样的对象(引用类型)的叫做容器. 为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的 ...

  10. Java面向对象 集合(下)

      Java面向对象 集合(下) 知识概要:               (1)Map集合的体系结构 (2)Map集合的方法 (3)HashMap TreeMap (4)集合框架中的常用工具类 ( ...

随机推荐

  1. maven配置nexus

    setting配置: <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the ...

  2. netifd

    Netifd是OpenWrt中用于进行网络配置的守护进程,基本上所有网络接口设置以及内核的netlink事件都可以由netifd来处理完成. 在启动netifd之前用户需要将所需的配置写入uci配置文 ...

  3. JS侦测设备旋转方向

    window.onload = window.onresize = function initialLoad(){updateOrientation();} function updateOrient ...

  4. javascript实现URL编码与解码

    一.预备知识 URI是统一资源标识的意思,通常我们所说的URL只是URI的一种.典型URL的格式如下所示.下面提到的URL编码,实际上应该指的是URI编码. foo://example.com:804 ...

  5. 开源 java CMS - FreeCMS2.2 建站向导

    项目地址:http://www.freeteam.cn/ 建站向导 为了方便用户创建网站,系统提供了建站向导功能. 从左側管理菜单点击建站向导进入. 第一步:创建网站 能够直接设置所属的父网站.填写相 ...

  6. java守护线程。

    java的守护线程:具体定义我也不太清楚,百度和谷歌了看的也不是很明白,但是啊,下边有给出一个例子自己领悟吧. 一.计时器的Timer声明时是否声明为守护线程对计时器的影响. /** * */ pac ...

  7. linux下解压 tar.bz2

    tar xvfj xxx.tar.bz2 转自: http://www.360doc.com/content/12/0907/16/8006573_234845810.shtml

  8. 360破解大赛crackme分析--之3DES解密附加数据

    具体的分析这里有.本人仅仅是对这里面有趣的算法进行了一些学习 分析链接 这次是逆向的使用3DES解密的过程中的内容: 使用微软的crypt库 使用3DES解密程序中的附加数据 代码: VOID enc ...

  9. gradlew assembleRelease打包之前的配置

    http://blog.csdn.net/qq_15527709/article/details/70146061

  10. windows CMD命令大全及详细解释和语法

    http://blog.csdn.net/god_7z1/article/details/51173067