JAVA—List集合总结
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集合总结的更多相关文章
- 【Java】集合_学习笔记
一.集合 1.集合类也称容器类,主要负责保存.盛装其他数据. 2.集合可以保存数量不确定的数据,保存具有映射关系的数据(也称关联数组). 3.Java5后提供一些多线程安全的集合类,放在java.ut ...
- java的集合框架最全详解
java的集合框架最全详解(图) 前言:数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作 ...
- 谈谈Java的集合组件
让我们一起谈谈Java的集合组件 我们在使用Java的时候,都会遇到并使用到Java的集合.在这里通过自己的理解和网上的资源对Java的集合方面的使用做一个简单的讲解和总结. Java主要分为3个集合 ...
- java.util 集合框架集合
java的集合框架为程序提供了一种处理对象组的标准方式.设计了一系列标准泛型接口: ⑴Collection ()接口,扩展了Iterable接口,位于集合层次结构的顶部,因此所有的集合都实现Colle ...
- Java基础——集合框架
Java的集合框架是Java中很重要的一环,Java平台提供了一个全新的集合框架.“集合框架”主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型.Java平台的完整集合框架如下图所示: 上 ...
- Java学习-集合(转)
在编写java程序中,我们最常用的除了八种基本数据类型,String对象外还有一个集合类,在我们的的程序中到处充斥着集合类的身影!java中集合大家族的成员实在是太丰富了,有常用的ArrayList. ...
- java的集合框架之一
java是一套很成熟的东西,很多商用的东西都喜欢用它,用的人多,稳定.不过一般也不怎么说起它,因为太常见了,私下里说,写java应用层得就像农民工,每一处都是搭积木,根据设计师的东西如何优雅地搭好积木 ...
- 浅谈Java的集合框架
浅谈Java的集合框架 一. 初识集合 重所周知,Java有四大集合框架群,Set.List.Queue和Map.四种集合的关注点不同,Set 关注事物的唯一性,List 关注事物的索引列表,Q ...
- Java之集合初探(一)
一.集合概述.区别 集合是一种容器,数组也是一种容器 在Java编程中,装各种各样的对象(引用类型)的叫做容器. 为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的 ...
- Java面向对象 集合(下)
Java面向对象 集合(下) 知识概要: (1)Map集合的体系结构 (2)Map集合的方法 (3)HashMap TreeMap (4)集合框架中的常用工具类 ( ...
随机推荐
- saveFile()方法
saveFile的原理就是将流写入到需要写入的文件,通过可以用“FileOutputStream”创建文件实例,之后过“OutputStreamWriter”流的形式进行存储,举例:public vo ...
- 读取数据库中timestamp类型去掉毫秒
数据库中查询出来的时间是:2015-09-24 14:30:26.2,带有毫秒,需要去掉. 方法一: public static Timestamp getSystemTime() { Date dt ...
- PHP——修改数据库1
主页面——0126.php 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
- Amazon EC2云端服务器的使用方法
Amazon的EC2服务器可以理解为虚拟机,不过它是不需要安装系统的,它是根据镜像自动创建的.在申请EC2的时候,可以选择操作系统的类型,如Redhat Enterprise 6或ubuntu 12等 ...
- Laravel 5.1 中创建自定义 Artisan 控制台命令实例教程
1.入门 Laravel通过Artisan提供了强大的控制台命令来处理非浏览器业务逻辑.要查看Laravel中所有的Artisan命令,可以通过在项目根目录运行: php artisan list 对 ...
- JQuery EasyUI DataGrid动态合并(标题)单元) 一
JS: /** * EasyUI DataGrid根据字段动态合并单元格 * @param fldList 要合并table的id * @param fldList 要合并的列,用逗号分隔(例如:&q ...
- php 判断查询结果是否为空
select count(people) c from people where people='乐乐' 上面这条sql就是原理 php利用代码 <?php $p=$_POST['p']; $c ...
- Windows网络接口API函数
Windows提供了一套非常轻量级的网络函数,方便进行网络应用开发,整理出来供参考使用. The following functions are used in Windows networking: ...
- linux默认的目录介绍
http://www.cnblogs.com/shishm/archive/2011/11/03/2234954.html
- 使用jq获取文字的宽度
获取字符串的长度很简单,但是如何获取一个字符串的字体宽度却是一个不太好操作的问题,今天查阅了许多资料,终于找到了解决方法: 1.首先,需要添加一个标签,HTML代码如下: <body> & ...