Java List 的最后一条前加入一条

在 Java 中,List 是一种常用的数据结构,它允许我们存储一组有序的元素,并且可以方便地进行插入、删除和访问操作。有时候,我们需要在 List 中的最后一条记录之前插入一条新的记录。本文将介绍如何使用 Java 编程语言实现这一功能,并提供代码示例。

List 概述

在开始讨论如何在 List 的最后一条前加入一条记录之前,我们先来了解一下 List 的基本概念。List 是 Java Collections Framework 中的一种接口,它继承自 Collection 接口,表示一组有序的元素。List 中的每个元素都有一个对应的索引,可以通过索引值来访问和操作元素。List 中的元素可以重复,且元素的顺序是固定的。

Java 提供了多种实现 List 接口的类,如 ArrayList、LinkedList 和 Vector 等。其中,ArrayList 是最常用的实现类之一,它基于数组实现,支持动态扩容和随机访问。LinkedList 是基于双向链表实现的,支持高效的插入和删除操作。Vector 是线程安全的 List 实现类,但由于其性能较差,通常不推荐使用。

在 List 的最后一条前加入一条记录

在 Java 中,可以通过 List 的 add 方法向 List 中添加新的元素。默认情况下,add 方法会将新元素添加到 List 的末尾。但是,如果我们需要在最后一条记录之前添加一条新的记录,我们可以使用 List 的 add 方法的重载形式。

下面是一个示例代码,演示了如何在 List 的最后一条前加入一条记录:

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

public class ListExample {
    public static void main(String[] args) {
        // 创建一个 List 对象
        List<String> list = new ArrayList<>();

        // 添加元素到 List 中
        list.add("Apple");
        list.add("Banana");
        list.add("Orange");

        // 在最后一条记录前加入一条新记录
        int lastIndex = list.size() - 1;
        list.add(lastIndex, "Mango");

        // 输出 List 的内容
        System.out.println(list);
    }
}

上述代码中,首先创建了一个 List 对象并添加了三个元素。然后,通过计算最后一条记录的索引,使用 add 方法在最后一条记录前插入了一条新记录。最后,输出了 List 的内容。

运行上述代码,输出结果为:

[Apple, Banana, Mango, Orange]

可以看到,新的记录 "Mango" 被成功地插入到了最后一条记录 "Orange" 之前。

实际应用

在实际应用中,我们经常会遇到需要在 List 的最后一条记录前加入一条新记录的情况。例如,我们有一个学生成绩列表,需要在每个学生的最后一次考试成绩之前插入一条新的成绩记录。通过使用 List 的 add 方法,我们可以很方便地实现这一功能。

下面是一个使用 List 在学生成绩列表中插入新记录的示例代码:

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

public class GradeExample {
    public static void main(String[] args) {
        // 创建一个学生成绩列表
        List<Integer> grades = new ArrayList<>();

        // 添加学生成绩到列表中
        grades.add(90);
        grades.add(85);
        grades.add(92);

        // 在每个学生的最后一次考试成绩之前插入一条新记录
        for (int i = 0; i < grades.size() - 1; i++) {
            int lastGrade = grades.get(i);
            int newGrade = (lastGrade + grades.get(i + 1)) / 2;
            grades.add(i + 1, newGrade);
            i++; // 跳过新插入的记录
        }

        // 输出学生成绩列表
        System.out.println(grades);
    }
}

上述代码中,首先创建了一个学生成绩列表,并添加了三个成绩记录。