简述java集合中的List


list 包括(ArrayList, vector,linkedList),都是存储单个对象的

二、List接口

(1)ArrayList实现类

List list = new ArrayList();  //这样使用还要转换

ArrayList list = new ArrayList(); --android开发中使用子类比父类效率高

        * 实现原理:使用动态对象数组,默认初始化一个空数组,

        * 在第一次添加元素时,动态扩充为容量10的对象数组

        * 数组不适合插入,删除操作

        * 如何在集合中确保存储同一种数据类型?使用泛型

* 在集合中,最好使用泛型存储相同类型的数据,避免类型不一致在使用时的类型转换问题

        * 为了防止数组动态扩充的次数过多,建议一创建ArrayList时,给定初始容量大小

     * 线程不安全,适合在单线程访问时使用,在多线程访问时,

     可以通过集合工具类重新构造一个线程安全的ArrayList

     

(2)Vector实现类 (线程同步)

Vector v = new Vector();

        * 实现原理:向量,基于动态对象数组,默认数组大小为10,

        * 动态扩充的算法:如果给Vector构造时设置了增量,

        * Vector是线程安全的,在多线程并发访问时可以保正数据安全,

        * 但在单线程访问时,效率比 ArrayList低。

        * 为 避免扩充次数,可以在构造Vector时给定初始容量

 

(3)LinkedList实现类  (链表集合)

    实现原理:基于链表数据结构,适合插入删除操作。性能高,不安全

    使用LinkedList 作为链表结构使

    LinkedList link = newLinkedList();

    link.add("lily");

    使用LinkedList作为队列使用(先进先出)

        //队列

              String s1 =list.peek();//获取队列的头元素

              System.out.println("peek="+s1);

              String s2 =list.poll();

              System.out.println("poll="+s2);//获取并移除头元素

              System.out.println(list);

              System.out.println("--------------");

 

    使用 LinkedList作为栈使用(先进后出)

       list.push("hanmeimei");//压栈

              list.push("lilei");

              list.push("lucy");

              System.out.println(list);

              String s3 =list.pop();//出栈

              System.out.println(s3);

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值