zoukankan      html  css  js  c++  java
  • List集合

    特点:

    a) 有序(存储和取出的元素顺序一致),可重复

    b) 特有功能

     1. 添加功能

      void add(int index,Object element)在指定位置添加元素(原索引处的元素后延)

     2. 获取功能

      Object get(int index)获取指定位置的元素

     3. 列表迭代器

      (1). ListIterator listIterator() List集合特有的迭代器

      (2). Iterator迭代器的子类,所以其可以用Iterator中的boolean hasNext()、Object next()方法

      (3). 特有的方法:

       a) Object previous ()返回此处位置的前一个的元素,并移动到前一个位置。

       b) boolean hasPrevious()判断此处的前一个位置是否有元素

       c) 逆向遍历必须先正向遍历使指针指到后面位置才能使用(使用意义不大)

      4. 迭代器遍历元素时不能直接通过集合修改元素,怎么办?

       a) 迭代器修改元素

        1. List迭代器有修改方法,Collection中的迭代器没有

        2. 通过迭代器中add(object obj)方法添加,跟在刚才迭代元素后面

       b) 通过集合遍历元素,并用集合修改元素(for循环遍历):通过集合中add(object obj)方法添加,跟在集合最后面

      5. 迭代器遍历实例实例在下面给出

      (1). 删除功能

       Object remove(int index)根据索引删除指定的元素,并返回删除的元素

      (2). 修改功能、

        Object set(int index,Object element)根据索引修改元素,返回被修改的元素

      (3). 数组转成集合

        ① public static List asList(T… a),返回类型为List类型

        ②  a为集合,此处的… 代表可变参数,也就是a的数组元素个数可变

        ③  此方法是Arrays类中的静态方法

        ④   数组转变为集合,实质还是数组需要保证长度不变,所以不支持增删集合元素,可以修改元素

    c) List子类的特点:

     1. ArrayList:

      (1). 底层数据结构是数组,查询快、增删慢

      (2). 线程不安全,效率高

     2. Vector:

      (1). 底层数据结构是数组,查询快,增删慢

      (2). 线程安全,效率底

     3. LinkedList:

      (1). 底层数据结构是链表,查询慢,增删快

      (2) 线程不安全,效率高

  • 相关阅读:
    POJ 1724 ROADS【最短路/搜索/DP】
    UVA 12716 GCD XOR【异或】
    UVA 10375 Choose and divide【唯一分解定理】
    UVA 12169 Disgruntled Judge【扩展欧几里德】
    UVA 11582 Colossal Fibonacci Numbers!【数学】
    011.progit笔记---git变基rebase
    010.progit笔记---git多个远程分支
    009.progit笔记---git单个远程分支
    008.progit笔记---git分支
    007.progit笔记---git别名
  • 原文地址:https://www.cnblogs.com/yhcTACK/p/15426888.html
Copyright © 2011-2022 走看看