• List接口与ArrayList、LinkedList实现类


    List接口中存储的是一组不唯一的,有序的对象

    List接口的父接口是Collection接口,所以List接口中大多数方法都是从Collection接口中继承的

    List接口有两个实现类:

      1.ArrayList实现类:采用数组的数据结构

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

        缺点:添加和删除需要移动大量的数据效率低

      2.LinkedList实现类:采用链表的数据结构

        优点:插入和删除元素的效率比较高

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

    ArrayList实现类特点及api:

    特点:

      1.可以存放不同类型的数据,而数组只能存放固定类型的数据

      2.在使用ArrayList子类实现的时候,初始化的长度是10,当长度不够的时候会自动进行扩容(newlength = oldlength * 1.5)

    get(int index):

    获取集合中指定下标位置的元素

     1 public class ListDemo {
     2     public static void main(String[] args) {
     3         List list = new ArrayList();
     4         list.add("a");
     5         list.add(0);
     6         list.add(true);
     7         System.out.println(list.get(0));
     8     }
     9 }
    10 打印结果:a

    indexOf(Object o):

    按照集合元素下标递增顺序,获取集合中指定元素的下标位置

     1 public class ListDemo {
     2     public static void main(String[] args) {
     3         List list = new ArrayList();
     4         list.add("a");
     5         list.add(0);
     6         list.add(true);
     7         System.out.println(list.indexOf("a"));
     8     }
     9 }
    10 打印结果:0

    lastIndexOf(Object o):

    按照集合元素下标递减顺序,获取集合中指定元素的下标位置

     1 public class ListDemo {
     2     public static void main(String[] args) {
     3         List list = new ArrayList();
     4         list.add("a");
     5         list.add(0);
     6         list.add("a");
     7         list.add(true);
     8         System.out.println(list.lastIndexOf("a"));
     9     }
    10 }
    11 打印结果:2

    set(int index,Object element):

    在集合中的指定位置插入元素

     1 public class ListDemo {
     2     public static void main(String[] args) {
     3         List list = new ArrayList();
     4         list.add("a");
     5         list.add(0);
     6         list.add("a");
     7         list.add(true);
     8         list.set(0,"yyy");
     9         System.out.println(list);
    10     }
    11 }
    12 打印结果:[yyy, 0, a, true]

    subList(int fromIndex,int toIndex):

    截取集合中指定位置之间的元素,放入新的集合中

     1 public class ListDemo {
     2     public static void main(String[] args) {
     3         List list = new ArrayList();
     4         list.add("a");
     5         list.add(0);
     6         list.add("a");
     7         list.add(true);
     8         List list1 = list.subList(0, 2);
     9         System.out.println(list1);
    10     }
    11 }
    12 打印结果:[a, 0]

    LinkedList实现类api:

    add(int index,Object element):

    在指定位置添加元素

    链表中添加元素,会断开指定元素的链条,上一元素末尾指针指向新元素开头,新元素末尾指针指向下一元素开头

    addFirst(Object e):

    在链表第一个元素之前插入元素

    addLast(Object e):

    在链表最后一个元素之后插入元素

    element():

    获取链表中第一个元素

    offer(Object e):

    在链表最后一个元素之后插入元素,该方法与add()方法相同

    peek()、peekFirst()、peekLast()、poll()、pollFirst()、pollLast()、get():

    这些方法都是获取元素的方法

    注意:

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

  • 相关阅读:
    C#高级编程第11版
    做点字符串题
    Codeforces Round #681 (Div. 1, based on VK Cup 2019-2020
    Educational Codeforces Round 97 题解
    AtCoder Regular Contest 106 题解
    Kick Start Round G 2020 题解
    CCSP 2020题解
    Codeforces Round #675 (Div. 2) 题解
    AtCoder Regular Contest 104
    Kick Start Round F 2020 题解
  • 原文地址:https://www.cnblogs.com/lyc-code/p/12575619.html
Copyright © 2020-2023  润新知