Java集合框架-ArrayList、LinkedList等(第十二天)

List接口的实现类

        List特点:有序,不唯一(可重复)

        ArrayList实现了长度可变的数组,在内存中分配连续的空间

                优点:遍历元素和随机访问元素的效率比较高

                缺点:添加和删除需要大量移动元素效率低,按照内容查询效率低

        LinkedList采用链表存储方式(链表:逻辑上连续,物理地址上并不连续)

                优点:插入、删除元素时效率比较高

                缺点:遍历和随机访问元素效率低下

        LinkedList拥有更加丰富的方法实现,需要用的时候查询即可,不需要记忆

        1.Vector也是List接口的一个子类实现

        2.Vector跟ArrayList一样,底层都是使用数组进行实现的

        3.面试经常问区别:

                (1)ArrayList是线程不安全的,效率高,Vecotor是线程安全的,效率低

                (2)ArrayList在扩容的时候扩容1.5倍,Vecotor在扩容的时候扩容2倍

        在java代码中包含三种循环方式

        do....while

        while

        for

        还有一种增强for循环的方式,可以简化循环编写

        所有的集合类都默认实现了Iterable的接口,实现此接口意味着具备了增强for循环的能力也就是for-each

        增强for循环本质上使用的也是iterator的功能

        方法:

                iterator()

                foreach()

        在iterator的方法中,要求返回一个iterator的接口子类实例对象

                此接口中包含的方法:

                        hasNext()

                        next()

        在使用iterator进行迭代的过程中删除其中的某个元素会报错,并发操作异常,因此

        如果遍历的同时需要修改元素,使用listIterator(),

        ListIterator迭代器提供了向前和向后两种遍历方式

        始终是通过cursor和lastret的指针来获取元素值及向下的遍历索引

        当使用向前遍历的时候必须要保证指针在迭代器的结尾,否则无法获取结果值

     

Set接口中的实现类:

        set接口存储一组唯一无序的对象

         2.set不可以通过下标获取对应位置的元素的值,因为无序的特点

        存入和取出的顺序不一定一致,操作数据的方法与List类似,set接口不存在get()方法

         遍历方法:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值