List集合

167 阅读2分钟

特点,注意,带索引的方法

特点:

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

带索引的方法(特有):

  • 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 数组索引越界异常
StirngIndexOutOfBoundsException 字符串索引越界异常

ArraryList,LinkedList,Vector的区别

  1. 默认容量:ArrayList默认为10,Vector可以视作老版的ArrayList,默认容量也是10,linkedList没有默认容量
  2. 特点:ArrayList查询快,增删慢,Vector查询快,增删慢,LinkedList查询慢,增删快
  3. 底层:ArrayList和Vector的底层都是数组,linkedlist底层是双向链表
  4. 扩容机制上:ArrayList是呈现1.5倍增长,Vector呈现2倍增长

LinkedList集合

java.util.LinkedList集合  implements List接口
LinkedList集合的特点:
    1·底层是一个链表结构:查询慢,增删快
    2·里面包含了大量操作首尾元素的方法
    注意:使用LinkedList集合特有的方法,不能使用多态

-public void addFirst(E e):将指定元素插入此列表的开头
-public void addLast(E e):将指定元素添加到此列表的结尾,此方法等效于add()
-public void push(E e):将元素推入次俩表所表示的堆栈,此方法等效于 addFirst(E);

-public E getFirst():返回此列表的第一个元素
-public E getLast():返回此列表的最后一个元素

-public E removeFirst():移除并返回此列表的第一个元素
-public E removeLast():移除并返回此列表的最后一个元素
-public E pop():从此列表所表示的堆栈处弹出一个元素,此方法相当于 removeFirst

-public boolean isEmpty():如果列表不包含元素,则返回true

    public static void main(String[] args) {
        System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
        show01();
        System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
        show02();
        System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
        show03();
        System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
    }

    /*
        -public void addFirst(E e):将指定元素插入此列表的开头
        -public void addLast(E e):将指定元素添加到此列表的结尾,此方法等效于add()
        -public void push(E e):将元素推入次俩表所表示的堆栈,此方法等效于 addFirst(E);
     */
    private static void show01() {
        //创建LinkedList集合对象
        LinkedList<String> linked = new LinkedList<>();
        //使用add方法往集合中添加元素
        linked.add("a");
        linked.add("b");
        linked.add("c");
        System.out.println(linked);

//        -public void addFirst(E e):将指定元素插入此列表的开头
        linked.addFirst("First");
        linked.push("first");//[First, a, b, c]
        System.out.println(linked);//[first, First, a, b, c]

//        -public void addLast(E e):将指定元素添加到此列表的结尾
        linked.addLast("list");
        System.out.println(linked);//[first, First, a, b, c, list]
        linked.add("Last");
        System.out.println(linked);//[first, First, a, b, c, list, Last]
    }

    /*
    -public E getFirst():返回此列表的第一个元素
    -public E getLast():返回此列表的最后一个元素
     */
    private static void show02() {
        //创建LinkedList集合对象
        LinkedList<String> linked = new LinkedList<>();
        //使用add方法往集合中添加元素
        linked.add("a");
        linked.add("b");
        linked.add("c");

//        linked.clear();//清空集合中的元素  在获取集合中的元素会抛出NoSuchElementException
        if (!linked.isEmpty()) {
            String first = linked.getFirst();
            System.out.println(first);//a
            String last = linked.getLast();
            System.out.println(last);//c
        }
    }

    /*
        -public E removeFirst():移除并返回此列表的第一个元素
        -public E removeLast():移除并返回此列表的最后一个元素
        -public E pop():从此列表所表示的堆栈处弹出一个元素,此方法相当于 removeFirst
     */
    private static void show03() {
        //创建LinkedList集合对象
        LinkedList<String> linked = new LinkedList<>();
        //使用add方法往集合中添加元素
        linked.add("a");
        linked.add("b");
        linked.add("c");
        System.out.println(linked.removeFirst());
        System.out.println(linked.pollFirst());
        System.out.println(linked.removeLast());
        if (linked.isEmpty()) {
            System.out.println("集合已经清空");
        } else {
            System.out.println("集合中还存在元素");
        }
    }