美文网首页java复习
2020-06-23集合进阶(Collection,List))

2020-06-23集合进阶(Collection,List))

作者: 智障猿 | 来源:发表于2020-06-28 09:51 被阅读0次

    集合知识回顾

    1. 特定:提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变。
    2. 集合类体系结构


      集合类体系结构.png

    Collection接口

    1. 概述
      ①Collection集合是单列集合的顶层接口,它表示一组可重复的对象,这些对象也被称为Collection的元素。
      ②JDK不提供此接口的任何直接实现,它提供更加具体的子接口(Set和List)实现
    2. 创建Collection对象
      ①多态的方式
      ②具体的实现类ArrayList
    3. Collection集合的常用方法
    方法名 说明
    boolean add(E e) 添加元素
    boolean remove(Object o) 从集合中移除指定的元素
    void clear() 清空集合中的元素
    Boolean contains(Object o) 判断集合中是否存在指定的元素
    boolean isEmpty() 判断集合是否为空
    int size() 集合的长度
    Iterator<E> iterator() 返回集合中元素的迭代器

    Collection集合的遍历

    • Iterator:迭代器,集合的专用遍历方式
    • Iterator接口中的方法
    方法 说明
    E next() 返回迭代中的下一个元素
    boolean hasNext() 如果迭代具有更多元素,则返回true
    • 迭代器的使用
    Collection<String> c = new ArrayList<>();
    Iterator it=c.iterator();//返回的是一个内部类的实例化对象,赋值个接口,用到了接口多态
    it.next()
    it.hasnext()
    
    • 注意
    1. 并发修改异常(ConcurrentModificationException)
      产生原因:迭代器在遍历过程中,通过集合对象修改集合中的元素,造成了迭代器(next方法中)获取元素中判断预期修改值和实际修改值不一致
      解决方案:使用for循环操作

    List集合

    • 概述
      ①有序(index)集合,用户可以精确控制列表中每个元素的插入位置,用户可以通过整个整数索引访问元素,并搜索列表中的元素。
      ②与Set集合的不同,列表通常允许重复的元素。
    • 特点
      ①有序:存储和取出的元素顺序一致
      ②可重复:存储的元素可以重复
    • 与Collection相比List特有的方法
    方法名 说明
    void add(int index,E element) 在此集合中的指定位置插入指定的元素
    E remove(int index) 删除指定索引处的元素,返回被删除的元素
    E set(int index,E element) 修改指定索引处的元素,返回被修改的元素
    E get(int index) 返回指定索引处的元素
    • 列表迭代器listItrator
    1. 特点:允许程序员沿任意方向遍历列表的列表迭代器,可以在迭代期间修改列表,并获取列表中迭代器的当前位置。
    2. 方法——与Iterator相比补充了以下方法
    方法名 说明
    hasPrevious 如果此列表迭代器向前方向遍历列表时具有更多元素,则返回true
    previous 返回列表中的上一个元素,并向后移动光标位置
    add 通过迭代器向列表中添加元素

    list集合子类特点

    • ArrayList:底层数据结构是数组,查询快,增删慢
    • LinkedList:底层数据结构是链表,查询慢,增删快

    linkedList集合的特有功能

    方法名 说明
    public void addFirst(E e) 在该链表的开头插入指定的元素
    public void addLast(E e) 将指定元素追加到列表的末尾
    public E getFirst() 返回此列表中的第一个元素
    public E getLast() 返回此列表中的最后一个元素
    public E removeFirst() 从此列表中删除并返回第一个元素
    public E removeLast() 从此列表中删除并返回最后一个元素

    相关文章

      网友评论

        本文标题:2020-06-23集合进阶(Collection,List))

        本文链接:https://www.haomeiwen.com/subject/lkghfktx.html