zoukankan      html  css  js  c++  java
  • Java学习:List接口

    List接口

    java.util.list接口 extends Collection接口

    List接口的特点:

    1. 有序的集合,存储元素和取出元素的顺序是一致的(存储123 取出123)
    2. 有索引,包含了一些带索引的方法
    3. 允许存储重复的元素

    List接口中带索引的方法(特有):

    public void add(int index,E element):将指定的元素,添加到该集合中的指定位置上。
    public E get(int index):返回集合中指定位置的元素。
    public E remove(int index):移除列表中指定位置的元素,返回的是被移除的元素。
    public E set(int index,E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。

    注意:
    操作索引的时候,一定要防止索引越界异常

    • IndexOutOfBoundsException:索引越界异常,集合会报
    • ArrayIndexOutOfBoundsException:数组索引越界异常
    • StringIndexOutOfBoundsException:字符串索引越界异常
    //创建一个List集合对象,多态
        List<String> list = new ArrayList<>();
        {
            //public void add(int index,E element):将指定的元素,添加到该集合中的指定位置上。
            //在索引2和索引3之间添加一个cainiao
            list.add(3,"cainiao");//{a,b,c,d}-->{a,b,c,cainiao,d}
            //移除元素
            String removeE = list.remove(2)
            //替换元素
            String setE = list.set(4,"A");
            }

    List的子类

    • ArrayList集合

    java.util.ArrayList集合数据存储的结构是数组结构元素增删慢,查找快,由于日常开发中使用最多的功能为查询数据、遍历数据,所以ArrayList是最常用的集合。

    • LinkedList集合

    java.util.LinkedList集合数据存储的结构是链结构。方便元素添加,删除的集合。

    java.util.LinkedList集合 implements List接口

    ArrayList集合的特点:

    1. 底层是一个链的结构:查询慢,增删快
    2. 里边包含了大量操作首尾元素的方法

    注意:
    使用ArrayList集合特有的方法,不能使用多态

    • public void addFirst(E e):将指定元素插入此列表的开头
    • public void addLast(E e):将指定元素添加到此列表的结尾
    • public void addpush(E e):将元素推如此列表所表示的推栈
    • public E getFirst():返回此列表的第一个元素。
    • public E getLast():返回此列表的最后一个元素。
    • public E removeFirst():移除并返回此列表的第一个元素。
    • public E removeLast():移除并返回此列表的最后一个元素。
    • public E pop():从此列表所表示的推栈处弹出一个元素。相当于removeFirst
    • public boolean isEmpty():如果列表不包含元素,则返回true

    Vector集合

    Vector 类可以实现可增长的对象数组。
    与新collection不同,Vector是同步的。

  • 相关阅读:
    FPGA中latency与delay概念的区别
    @transactional注解在什么情况下会失效,为什么。
    一个ArrayList在循环过程中删除,会不会出问题,为什么?
    HashMap在高并发下如果没有处理线程安全会有怎样的安全隐患,具体表现是什么
    JVM调优
    正确截取List指定位置的内容
    ArrayList源码解析
    接口和抽象类的区别(JDK1.8)
    Hashtable源码解析
    Kotlin实践记录
  • 原文地址:https://www.cnblogs.com/cainiao-chuanqi/p/11223151.html
Copyright © 2011-2022 走看看