zoukankan      html  css  js  c++  java
  • 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即可,不需要记忆

  • 相关阅读:
    MyBatis映射文件中用#和$传递参数的特点
    使用谷歌浏览器进行Web开发技巧
    YYYY-mm-dd HH:MM:SS 备忘录
    java通过UUID生成16位唯一订单号
    idea如何设置类头注释和方法注释
    如何用符号构建人的思维系统?
    临界点思维模型
    复利思维模型-拥抱人生的指数增长
    提升自我认知的有效方式
    如何去培养顶尖的思维模型?
  • 原文地址:https://www.cnblogs.com/lyc-code/p/12575619.html
Copyright © 2011-2022 走看看