LinkedList

LinkedList

特点

底层是链表,增删快,查询慢

实践

package com.qianfeng.collection;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.ListIterator;

/**
 * 功能描述
 *
 * @since 2022-05-07
 */
public class LinkedListDemo {
    public static void main(String[] args) {
        LinkedList<Object> linkedList = new LinkedList<>();
        Student s1 = new Student("ZhangSan", 1);
        Student s2 = new Student("LiSi", 2);
        Student s3 = new Student("WangWu", 3);
        // 添加数据
        linkedList.add(s1);
        linkedList.add(s2);
        linkedList.add(s3);

        // 删除数据
        linkedList.remove(new Student("ZhangSan", 1));
        // 遍历
        // 由于List继承于Collection,所以可以使用增强for循环遍历
        System.out.println("===============使用增强for循环遍历==================");
        for (Object o : linkedList) {
            System.out.println(o.toString());
        }

        // 由于List有下标,所以可以使用for循环遍历
        System.out.println("===============使用for循环遍历==================");
        for (int i = 0; i < linkedList.size(); i++) {
            System.out.println(linkedList.get(i));
        }

        // 由于List继承于Collection,所以可以使用迭代器遍历
        System.out.println("===============使用迭代器遍历==================");
        Iterator it = linkedList.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }

        // List有列表迭代器,可以实现双向遍历、添加、删除、更新等操作
        System.out.println("===============使用列表迭代器遍历==================");
        ListIterator lit = linkedList.listIterator();
        while (lit.hasNext()) {
            System.out.println(lit.nextIndex() + ":" + lit.next());
        }

        while (lit.hasPrevious()) {
            System.out.println(lit.previousIndex() + ":" + lit.previous());
        }

        // 判断
        System.out.println(linkedList.isEmpty());
        System.out.println(linkedList.contains(s3));

        // 获取
        linkedList.get(0);
    }
}

与ArrayList的区别及使用场景

1.ArrayList底层是数组结构,查询快,增删慢,适用于多查询的场景
2.LinkedList底层是双向链表结构,查询慢,增删快,适用于增删频繁的场景

posted @ 2022-05-07 17:49  Oh,mydream!  阅读(28)  评论(0编辑  收藏  举报