collection集合下的list子接口

本文详细介绍了Java中List接口及其三个主要实现类:ArrayList、Vector和LinkedList的特点与使用方法。对比了不同实现类在查询、增删操作上的性能差异,并解释了底层数据结构对这些差异的影响。
摘要由CSDN通过智能技术生成

collection的子接口list

ArrayList

Vector

LinkedList

在这里插入图片描述

1.list接口

collection的子接口list

复习一下;list特点:
有序,有下标,可重复

list的使用
a.创建集合
List list=new ArrayList();
添加元素:
list.add();
b.遍历(和collection不太一样)
可以使用for循环(因为list有下标)

也可使用增强for循环(因为list属于collection的子接口)

迭代器

使用listiterator迭代器(比iterator迭代器功能多)

一个简单的迭代器遍历的语句例子:
先判断在取值;
while(list.hasNext()){
list.next();
}

2.ArrrayList
本质:数组结构实现,查询快,增删慢
效率快,非线程安全

a.ArrayList的使用
默认容量为10;//若没有向集合中添加容量则为0;(了解就可以,知道有一个默认容量)
每次扩容是原来的1.5倍	

3.Vector:
同样数组结构实现,查询快,增删慢
效率低,线程安全

4.LinkedList
和上面结构不一样
链表结构实现,增删快,查询慢

理解一下基础的数组和链表的区别:
数组的元素是连续的,
当数组要插入或者删除元素时,假如在第三号下标插入,则后面的整体都要
向后移动,删除则整体向前移动。
数组的长度还是固定的,若插入元素则需要先判断是否需要扩容。
数组查询可定位下标,查询快

链表空间不连续。
链表的增删则比较简单,如果要增加或者删除时则需要将节点的指针改一下
既可以,所以增删比较快,
查询的话需要一个节点一个指针指下一个节点,查询起来比较慢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值