集合框架01
-
Collection接口
1.1 集合框架的顶级接口
1.2 是Set和List的父接口
1.3 但不是Map的父接口
集合中只能添加引用类型数据 (jdk1.5之后自动装箱拆箱) -
List接口
List li = new ArrayList();
li.add("hh");
li.add("dd");
li.add("ww");
2.1 特点:有序、对象可以重复
//1)有序 数据存入顺序与输出顺序一致
for (Object it : li) {
System.out.println(it);
}
System.out.println("---------------------------");
//2)不唯一 可以出现重复数据
li.add("mmd");
for (Object it : li) {
System.out.println(it);
}
2.2 遍历方式
2.2.1 下标
2.2.2 foreach(>=jdk1.5)
for (Object it : li) {
System.out.println(it);
}
2.2.3 迭代器Iterator(原理)
System.out.println("--------------iterator--------------");
Iterator it = li.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
2.3 List优化
初始容量10,
负载因子0.5(扩容比例) 0.5
容量计算公式:容器大小+10*0.5
2.4 List元素删除
System.out.println("第一种");
for (int i = 0; i <li.size() ; i++) {
li.remove(0);
}
System.out.println("第二种倒叙删除");
for (int i = li.size()-1; i>=0; i--) {
li.remove(i);
}
-
泛型
JDK1.5之后
以类型作为参数的类就叫泛型
作用:提高程序健壮性,简化代码
泛型的默认值是Object -
装箱、拆箱
值类型->引用类型 装箱
引用类型->值类型 拆箱
jdk1.5之后引入了自动装箱及自动拆箱功能
//1)装箱,值类型-->引用类型
int a = 4;
Integer b = new Integer(a);
//2)拆箱,应用类型-->值类型
Integer c = new Integer(3);
int d =c.intValue();
- ArrayList、LinkedList、Vector区别
ArrayList:以连续的数组结构存储数据,查询块(下标)、增删改慢
LinkedList:以链表的结构存储数据,查询慢、增删改快
Vector:增删改查都慢,已过时
集合框架的总流程图