集合框架

    xiaoxiao2025-03-30  13

    集合框架

    1.Collection接口(面试题)

    1.1集合框架的顶级接口 1.2 是Set 和 List 的父接口 1.2 但不是Map的父接口 集合中只能添加引用数据

    2.List接口

    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 aa

    2.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 aa

    2.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 删除之后:0

    2.3 List优化 初始容量为10,负载因子0.5 例如:10+100.5=15 16 --> 15+100.5=20

    3.泛型

    System.out.println("----------泛型-----------"); List<Integer> lt = new ArrayList<Integer>(3);//初始容量(10) //添加数据 lt.add(3); lt.add(2); lt.add(1); Iterator<Integer> itt = lt.iterator(); //使用泛型之前 while(itt.hasNext()) { Object ob = itt.next(); Integer in = Integer.parseInt(ob.toString()); if(in%2==0) System.out.println(in); } //所有泛型后 while(itt.hasNext()) { Integer in = itt.next(); if(in%2==0) System.out.println(in); } //运行结果 ----------泛型----------- 2

    4.装箱,拆箱

    3.1 装箱:值类型—>引用类型

    int i = 5; Integer l = new Integer(i);

    3.2 拆箱:引用类型—>值类型

    Integer k = new Integer(4); int m = k.intValue();

    5. ArrayList, LinkedList,Vector区别

    ArrayList:以连接的数组结构储存数据,查询快,增删改慢 LinkedList: 以链表的结构储存数据,查询慢,增删改快 Vector: 增删改查都慢,已过时

    最新回复(0)