欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于List集合的简介

程序员文章站 2022-03-13 21:24:49
...

List属于Collection的一个子接口,list集合拥有collection集合所有的方法,List主要几个实现类有ArrayList、Vector、LlinkedList,今天主要介绍这几个实现类

List特点:
1、List是有序的collection,因此用户可以根据元素的索引(元素在列表中的位置)来找到。
2、List中的元素是可以重复的。

List特有的迭代器:
Iterator:
①hasNext()
②next()
③remove()

List集合的调优:如果知道每次大概增长的数量,就可以传一个参数,改变集合的初始大小,减少容器传输的次数

ArrayList

array与ArrayList的区别
----------array长度固定,ArrayList反之
----------array一旦声明,只能放该类型的对象

ArrayList与Linkedlist的区别
	数据结构
	ArrayList的数据结构是数组存储,造成了查询速度快,增删慢,线程不同步
	Linkedlist的数据结构是链表存储,造成了增删快,查询慢

ArrayList集合的特点:

1、数组结构 
2、有连续下标。增删慢,查询。(因为他是有序的,有下标,所有每增加一个或减少一个,整个集合的下标都要跟着改变,所以增删慢。但是正是因为它有下标所以可以根据下标来查询,所以查询速度快)
3、线程不同步
4、增长因子为1.5

这是ArrayList的一些特有方法
关于List集合的简介

LlinkedList

AlinkedList集合的特点:

1、链表结构(双链表结构:当前元素只能知道自己上一个元素的和下一个元素)
链表结构: 链表结构是由许多节点构成的,每个节点都包含两部分:
①数据部分:保存该节点的实际数据(值)
②地址部分:保存的是下一个节点的地址(也就是我们的下标)。
③单向链表:只能获取自己下一个元素的节点
④双向链表:能获取自己上一个元素和下一个元素的节点

关于List集合的简介
2、增删改查都慢 有连续下标
3、 线程同步
4、增长因子2

LinkedList集合的一些特有方法:

addFirst();

addLast();



获取元素但是不删除元素,如果集合中没有元素,会出现NoSuchElementException

getFirst();

getLast();

 

获取元素的同时会删除元素,如果集合中没有元素,会出现NoSuchElementException

removeFirst();

removeLast();

 

在jdk1.6出现了替代方法

offerFirst()

offerLast()

 

peekFirst();

peekLast();

 

获取元素的同时会删除元素,如果集合中没有元素,会返回null

pollFirst();

pollLast();

我们能用LinkedList实现堆栈存储结构和队列存储结构

堆栈:先进后出(就比如我们把a,b,c,d,e依次存进去,取出后它的顺序会变为e,d,c,b,a)
队列:先进后出(就比如我们把a,b,c,d,e依次存进去,取出来顺序还是a,b,c,d,e)

Vector

Vector集合的特点:

1、数组结构
2、增删改查都慢 
3、有连续下标     
4、线程同步    
5、增长因子2

独有的特点:可以通过枚举遍历

	public static void main(String[] args) {
		Vector v=new Vector<>();
		v.add("xx");//添加元素给集合
		v.add("aa");
		Enumeration eles=v.elements();
		while(eles.hasMoreElements()){
			System.out.println(eles.nextElement());
		}

小技巧

解决eclipce按住Ctrl键查看源代码无法显示问题
关于List集合的简介

点击“Attach Source”,在此对话框下,选择”External location“,然后找到你的jdk的文件安装路径(不是jre),找到src.zip,然后导入,问题就解决了
关于List集合的简介

关于List集合的简介
最后导入就成功解决了