1.1集合框架的顶级接口 1.2 是Set 和 List 的父接口 1.2 但不是Map的父接口 集合中只能添加引用数据
2.1特点:有序,但不唯一
//创建集合 List<Object> list = new ArrayList<>(); //添加数据 list.add("aa"); list.add("bb"); list.add("cc"); list.add("dd"); System.out.println("-----------list有序-----------"); for (Object item : list) { System.out.println(item); } //运行结果 -----------list有序----------- aa bb cc dd System.out.println("-------------list不唯一-------------"); list.add("aa"); for (Object item : list) { System.out.println(item); } //运行结果 -------------list不唯一------------- aa bb cc dd aa2.2遍历方式
System.out.println("---------------for(下标)-----------------"); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } //运行结果 ---------------for(下标)----------------- aa bb cc dd aa System.out.println("--------------foreach---------------"); for (Object item : list) { System.out.println(item); } //运行结果 --------------foreach--------------- aa bb cc dd aa System.out.println("----------------迭代器(Iterator)---------------"); //创建迭代器 ==使用迭代器遍历时hasNext()后必须要有next()== Iterator itr = list.iterator(); while(itr.hasNext()) { //hasNaxt()是为了接收下一个数据 System.out.println(itr.next()); //next();是为了获取下一个数据 } //运行结果 ----------------迭代器(Iterator)--------------- aa bb cc dd aa2.2.1 List集合删除
System.out.println("--------------删除---------------"); System.out.println("删除之前:"+list.size()); //for(下标) for (int i = 0; i <list.size(); i++) { list.remove(i); } System.out.println("删除之后:"+list.size()); //运行结果 --------------删除--------------- 删除之前:5 删除之后:2 ====删不干净所有用下面这种方法==== //逆向删除 for (int i = list.size()-1; i>=0; i--) { list.remove(i); } //运行结果 --------------删除--------------- 删除之前:5 删除之后:0 //Iterator删除 Iterator it = list.iterator(); while(it.hasNext()) { it.next(); it.remove(); } //运行结果 --------------删除--------------- 删除之前:5 删除之后:02.3 List优化 初始容量为10,负载因子0.5 例如:10+100.5=15 16 --> 15+100.5=20
3.1 装箱:值类型—>引用类型
int i = 5; Integer l = new Integer(i);3.2 拆箱:引用类型—>值类型
Integer k = new Integer(4); int m = k.intValue();ArrayList:以连接的数组结构储存数据,查询快,增删改慢 LinkedList: 以链表的结构储存数据,查询慢,增删改快 Vector: 增删改查都慢,已过时