【集合框架】——[List]

List接口
1 特点:(3有产品)
有序、对象可以重复(不唯一)、有下标
有序:元素添加是顺序与输出的顺序一致
不唯一: 允许添加重复元素
下标:元素的一种标识
2 遍历方式
2.1 通过下标遍历
for(int i=0; i<集合名称.size(); i++){
System.out.println(集合名称.get(i));
}

2.2 通过foreach(>=jdk1.5)  需要jdk在1.5及以上版本才能使用

for(Object o : 集合名称){
System.out.println(o);
}

2.3 通过list的依赖迭代器(Iterator)来遍历

获取List集合的迭代器
listIterator(或Iterator) it = 集合名称.listIterator(或Iterator)
遍历集合
hasNext():判断集合中的下一个元素是否存在,返回boolean
next():移动下标,并取出元素
while(it.hasNext) {
System.out.println( it.next() );
}

3 List优化(面试题)
初始容量为10,负载因子1.5
3.1)初始容量:10
3.2)负载因子(扩容比例):1.5
3.3)扩容公式:容器大小*负载因子 (容器大小不是初始容量)
注意向下取整(舍弃小数点后的数)
例如:
10
1.5 = 15 第一次扩容
15
1.5 = 22.5(22) 第二次扩容
22
1.5 = 33 第三次扩容
4 List元素删除
4.1)iterator删除方式(迭代器删除)
获取List集合的迭代器
listIterator(或Iterator) it = 集合名称.listIterator(或Iterator)
while(it.hasNext) {
//注意:先移动下标,在删除!!!
//注意:先移动下标,在删除!!!
//注意:先移动下标,在删除!!!
//移动下标
it.next();
//删除元素
it.remove();
}
4.2)for循环反向删除

for(int i = 集合名称.size(); i>=0; i–){
集合名称.remove(i);
}
4.2) for循环删除,永远删除第一个,但要定义长度变量
int size = 集合名称.size()
for(int i = 0; i<size; i–){
集合名称.remove(0);
}
4.3)集合名称.clear()
清空集合中的所有元素
—————————————————————————————————————————————
泛型

  • JDK1.5及以上
    以类型作为参数的类就叫泛型
    作用:提高程序健壮性,简化代码
    泛型的默认值是Object

装箱、拆箱
java八大基础类型 int / short / long / byte / char / boolean / float / double
引用类型:指八大基础类型的封装类

值类型->引用类型 装箱
int a = 10;
Integer b = new Integer(a);

引用类型->值类型 拆箱
int c = b.intValue();

jdk1.5及之后引入了自动装箱及自动拆箱功能

—————————————————————————————————————————————

面试题

ArrayList、LinkedList、Vector区别
ArrayList: 以连续的数组结构存储数据,查询快(下标)、增删改慢
LinkedList: 以链表的结构存储数据,查询慢、增删改快
Vector: 增删改查都慢,已过时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值