【Java】集合-List

个人主页:https://github.com/zbhgis

前言

1.之前学过,因此本文是个人复习笔记,为视频的总结以及个人思考,可能不是很详细。

2.教程是b站黑马程序员的JAVASE基础课程,笔记中的大部分图片来自于视频中的PPT截图。

3.Java环境为Java SE 17.0.3.1,IntelliJ IDEA版本为2025.2

https://www.bilibili.com/video/BV1Cv411372m

内容概览

1.本文内容主要包括不同list的特点,以及List和LinkedList的常见用法

2.笔记对应视频138-139节

更新记录

特点

ArrayList

  • 有序,可重复,有索引
  • 查询快,增删慢
  • 利用无参构造器创建的集合,会在底层创建一个默认长度为0的数组
  • 添加第一个元素时,底层会创建一个新的长度为10的数组
  • 存满时,会扩容1.5倍
  • 一次性添加多个元素,1.5倍还放不下,则新创建数组的长度以实际为准

LinkedList

  • 有序,可重复,有索引
  • 查询慢,增删快,但对首尾元素进行增删改查的速度是极快的
  • 基于双链表实现,可用于设计队列或栈

List

除以下方法外,List也继承了Collection的功能

img

Lists1.java

package com.zbhgis.lists;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Lists1 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("山");
        list.add("重");
        list.add("水");
        list.add("复");

        list.add(4, "疑");
        System.out.println(list);

        System.out.println(list.remove(4));
        System.out.println(list);

        System.out.println(list.get(1));
        System.out.println(list.set(0, "3"));
        System.out.println(list);


        for (int i = 0; i < list.size(); i++) {
            String s = list.get(i);
            System.out.print(s);
        }
        System.out.println();

        Iterator<String> it = list.iterator();
        while (it.hasNext()) {
            System.out.print(it.next());
        }
        System.out.println();

        for (String s : list) {
            System.out.print(s);
        }
        System.out.println();

        list.forEach(System.out::print);
        System.out.println();
    }
}

打印结果

[山, 重, 水, 复, 疑]
疑
[山, 重, 水, 复]
重
山
[3, 重, 水, 复]
3重水复
3重水复
3重水复
3重水复

LinkedList

LinkedList的新增方法

img

Lists2.java

package com.zbhgis.lists;

import java.util.LinkedList;

public class Lists2 {
    public static void main(String[] args) {
        // 设计队列,先进先出,后进后出
        LinkedList<String> queue = new LinkedList<>();
        queue.addLast("1");
        queue.addLast("2");
        queue.addLast("3");
        queue.addLast("4");
        System.out.println(queue);

        System.out.println(queue.removeFirst());
        System.out.println(queue.removeFirst());
        System.out.println(queue.removeFirst());
        System.out.println(queue);

        // 设计栈,后进先出,先进后出
        LinkedList<String> stack = new LinkedList<>();
        // 或者stack.push("1");
        stack.addFirst("1");
        stack.addFirst("2");
        stack.addFirst("3");
        stack.addFirst("4");
        System.out.println(stack);

        // 或者stack.pop();
        System.out.println(stack.removeLast());
        System.out.println(stack.removeLast());
        System.out.println(stack.removeLast());
        System.out.println(stack);
    }
}

打印结果

[1, 2, 3, 4]
1
2
3
[4]
[4, 3, 2, 1]
1
2
3
[4]

总结

posted @ 2026-01-19 22:37  浩瀚地学  阅读(0)  评论(0)    收藏  举报