1.UML:统一建模语言。
2.Collection接口
2.1集合框架的总接口
2.2.是Set和List的父接口
2.3.不是Map的父接口
注意:集合中这只能添加引用类型。
3.List接口
3.1.特点:有序,对象可以重复。
3.2.遍历方式:
3.2.1.下标
3.2.2.foreach(>jdk1.5)
3.2.3.迭代器Iterator
List lst=new ArrayList<>();
lst.add("zs");
lst.add("ls");
lst.add("ww");
lst.add("zl");
// 第一种
lst.forEach(System.out::println);
// 第二种
for (int i = 0; i < lst.size(); i++) {
System.out.println(lst.get(i));
}
// 第三种
for (Object object : lst) {
System.out.println(object);
}
Iterator it= lst.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
3.3 List优化
初始容量10,负载因子1.5
指定初始容量
public class Demo2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
List list=new ArrayList(50); //节省资源,可以自定义
for (int i = 0; i <50; i++) {
list.add(i);
System.out.println(i);
getlen(list);
}
}
//优化 getlen方法
public static void getlen(List list) {
try {
Class<? extends List> cla=list.getClass();
Field field=cla.getDeclaredField("elementData");
field.setAccessible(true);
Object[] object=(Object[])field.get(list);
System.out.println(object.length);
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
}
}
3.4 List元素删除 (重点)
//正向
/*int len=lst.size(); //定义len重点
for (int i = 0; i <len; i++) {
lst.remove(0); //重点
}*/
//逆向
/*int len=lst.size()-1; //重点
for (int i = len; i>=0; i--) {
lst.remove(i);
}*/
/*ListIterator it=lst.listIterator(); //先获取下一个,再移除.
while(it.hasNext()) {
it.next();
it.remove();
}*/
// 全部清除lst.clear();
}
4.泛型(jdk1.5之后):以类型作为参数的类就叫泛型
作用:提高程序健壮性,简化代码。
泛型的默认值是Object.
5.装箱、拆箱
值类型->引用类型 装箱
引用类型->值类型 拆箱
jdk1.5之后引入了自动装箱及自动拆箱功能
//装箱
int a=1;
Integer v=new Integer(a);
//拆箱
Float f=new Float(1.3f);
float d=f.floatValue();