先看看集合框架的关系表
然后是接口之间的关系:
1. Collection接口
1.1 集合框架的顶级接口
1.2 是Set和List的父接口
1.3 但不是Map的父接口
2. List接口
2.1 特点:有序、对象可以重复 ?
2.2 遍历方式
2.2.1 下标
2.2.2 foreach(>=jdk1.5)
2.2.3 迭代器Iterator(原理)
List lst=new ArrayList();
lst.add("s1");
lst.add("s2");
lst.add("s3");
lst.add("s4");
lst.forEach(System.out::println);
System.out.println("----------for下标---------");
for (int i = 0; i < lst.size(); i++) {
System.out.println(lst.get(i));
}
System.out.println("----------foreach---------");
for (Object object : lst) {
System.out.println(object);
}
System.out.println("----------iterator---------");
Iterator it=lst.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
2.3 List优化
初始容量10,负载因子1.5
指定初始容量
2.4 List元素删除
//List删除方式
System.out.println("删除之前大小:"+lst.size());
for (int i = 0; i < lst.size(); i++) {
lst.remove(i);
}
System.out.println("删除之后大小:"+lst.size());
int s=lst.size();
for (int i = 0; i < s; i++) {
lst.remove(0);
}
System.out.println("删除之后大小:"+lst.size());
int a=lst.size()-1;
for (int i = a; i >=0; i--) {
lst.remove(0);
}
System.out.println("删除之后大小:"+lst.size());
ListIterator is=lst.listIterator();
while (it.hasNext()) {
is.next();
is.remove();
}
3. 泛型
JDK1.5之后
以类型作为参数的类就叫泛型
作用:提高程序健壮性,简化代码
泛型的默认值是Object
package com.T277.util;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
public class Demo1 {
public static void main(String[] args) {
List lst=new ArrayList(50);
for (int i = 0; i < 50; i++) {
lst.add(i);
System.out.println(i);
getLen(lst);
}
}
public static void getLen(List lts) {
try {
Class extends List> cla=lts.getClass();
Field field=cla.getDeclaredField("elementData");
field.setAccessible(true);
Object[] obj=(Object[]) field.get(lts);
System.out.println("集合大小为:"+obj.length);
} catch (Exception e) {
e.printStackTrace();
}
}
}
4. 装箱、拆箱
值类型->引用类型 装箱
引用类型->值类型 拆箱
jdk1.5之后引入了自动装箱及自动拆箱功能
package com.T277.util;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class Demo2 {
public static void main(String[] args) {
List lst=new ArrayList();
lst.add(new Integer(2));
lst.add(2);
lst.add(3);
lst.add(4);
// Iterator it=lst.iterator();
ListIterator it= lst.listIterator();
while (it.hasNext()) {
// Object val=it.next();
// int num=Integer.parseInt(val.toString());
int num=it.next();
if(num%2==0) {
System.out.println(num);
}
int a=1;
Integer a1=new Integer(a);
Float f=new Float(1.5f);
float fl=f.floatValue();
}
}
}



