[二.J2EE]_集合框架

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();

    

 6.ArrayList、LinkedList、Vector区别

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



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值