【javase复习】##day7 集合 list ##

实现List接口的集合类

特点:有序可重复

有序: 不是自然顺序, 而是添加进去的顺序

List接口中特有方法:

添加
    add(int index, E element) 
    addAll(int index, Collection<? extends E> c) 
获取:
    get(int index) 
    indexOf(Object o) 
    lastIndexOf(Object o) 
    subList(int fromIndex, int toIndex) 
修改:
    set(int index, E element) 

迭代
    listIterator() 

特点:方法参数都具有索引值,因为list接口的实现类下才具有索引值!!

重点看一下listIterator()方法。

这里写图片描述

其实很简单,。。。
就是 Iterator只能抓取下一个元素 即next ,单向移动指针

ListIterator可以双向移动指针。。并且有索引值。。。

所以可以

            是否有下一个元素 抓取下一个元素 ,抓取下一个元素的索引值,
            是否有上一个元素 抓取上一个元素 ,抓取上一个元素的索引值。

并且有remove (删除)和set(修改)作用于next或者previous作用的最后一个元素。。。。。。

注意ListIterator的add方法和ArrayList的add方法的不同之处

ListIterator: 将元素添加到当前指针所指位置,并且将指针下移一位
ArrayList: 将元素添加到容器末尾

所以在迭代的过程中不能运用集合对象改变对象中的元素个数,如果改变了就会抛出ConcurrentModificationException异常

迭代过程: 迭代器从创建开始 到使用结束的过程。






···········实现类ArrayList

这里写图片描述



其实是内部维护了一个Object[]数组,
特点: 查询速度快,增删慢。
使用无参构造函数时默认容量为10,长度不够用时自动增长0.5倍。查看源码可查:

这里写图片描述

特有方法:

void ensureCapacity(int minCapacity)
如有必要,增加此 ArrayList 实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数。

void trimToSize()
将此 ArrayList 实例的容量调整为列表的当前大小。





LinkedList实现类

显然是 内部维护了一个链表

特点: 查询速度慢,增删快。

  void addFirst(E e)    将指定元素插入此列表的开头。   
  void addLast(E e)     将指定元素添加到此列表的结尾。 
  E getFirst()          返回此列表的第一个元素。   
  E getLast()           返回此列表的最后一个元素。   
  E removeFirst()       移除并返回此列表的第一个元素。   
  E removeLast()        移除并返回此列表的最后一个元素。 

 **栈专属:**

 E pop()                 从此列表所表示的堆栈处弹出一个元素。  
 void push(E e)          将元素推入此列表所表示的堆栈。 

 **队列专属:**

  E poll()             获取并移除此列表的头(第一个元素)   
  boolean offer(E e)  将指定元素添加到此列表的末尾(最后一个元素)。 

 descendingIterator() 
                      返回以逆向顺序在此双端队列的元素上进行迭代的迭代器。




Vector类 没人用的东西

线程安全,效率低

跟ArrayList一样

是 JDK1.0出现
ArrayList 是JDK1.2

迭代器不同:

Vector v =new Vector();
    v.add("ads");
    v.add("dsdas");
    v.add("dsda3432s");
    v.add("dsd34543654as");
    Enumeration e =v.elements();
    while(e.hasMoreElements())
        System.out.println(e.nextElement());
     }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值