【编程语言】java--List及其子类

List  元素是有序的,且元素可以重复,因为该集合体系有索引

Set   元素是无序的,元素不可以重复
 List特有方法(方法中凡是可以操作角标的方法)
增  add(index,element)  addAll(index,Collection)
删   remove(index)
改 set(index,element)
查 get(index)  subList(from,to)  listiterator(); 


 常见三个子类对象
ArrayList  底层的数据结构使用数组 查询速度快
LinkedList  底层使用链表数据结构增删快,查询慢
Vector底层是数组数据结构vector 1.0是出现的 ArrayList是1.2时出现的
         Vector是同步的,ArrayList线程不同步
ArrayList默认长度10,添加50%延长,创建15的数组,把以前的copy过来
vector 100%延长,


 Vector有特殊之处
void addElement(E obj)
Enumeration elements()
Enumeration en = v.elements()
枚举是vector的特有取出方式  发现枚举和迭代器很想像,其实枚举和迭代是一样的,因为枚举的名称和方法的名称都过长,所以被迭代器取代1.0是只有枚举


LinkedList不同步
addFirst  addLast getFirst getLast removeFirst removeLast
如果集合中没有元素
在JDK1.6出现了替代方法
offerFirst()
offLast()没有元素返回空
   
使用linkedList模拟一个堆栈或者队列数据结构
去除arrayList重复元素


强制类型转换
Iterator it = al.iterator();
while(it.hasNext())
{
Person p = (Person)it.next();
p.getName();
}


List集合判断元素是否相同,依据的是元素的equals方法

contains原理是 调用equals方法 remove底层也是调用equals


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值