遍历一个包含另一个列表的列表在 Java 中是一个常见的操作。在这篇文章中,我们将探讨如何有效地遍历一个 List 中包含的 List,并结合代码示例进行解析。我们首先将定义数据结构,然后逐步深入到遍历过程及其细节,最后会用类图和关系图来让读者更好地理解。
一、定义数据结构
首先,我们需要定义一个用于存储的类。在这个示例中,我们将创建一个 Student
类,用于表示学生的信息,并且每个学生有一个成绩列表。我们的主要数据结构是一个 List,它包含多个 Student
的对象,每个 Student
对象又包含一个 List 存储其成绩。
以下是 Student
类的定义:
import java.util.List;
public class Student {
private String name;
private List<Integer> scores; // 存储每个学生的成绩
// 构造函数
public Student(String name, List<Integer> scores) {
this.name = name;
this.scores = scores;
}
// Getter 方法
public String getName() {
return name;
}
public List<Integer> getScores() {
return scores;
}
}
二、创建包含学生的列表
接下来,我们将创建一个包含多个 Student
对象的 List。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class StudentListDemo {
public static void main(String[] args) {
// 创建成绩列表
List<Integer> scores1 = new ArrayList<>(Arrays.asList(85, 90, 78));
List<Integer> scores2 = new ArrayList<>(Arrays.asList(88, 76, 92));
// 创建学生对象
Student student1 = new Student("Alice", scores1);
Student student2 = new Student("Bob", scores2);
// 创建学生列表
List<Student> students = new ArrayList<>(Arrays.asList(student1, student2));
// 遍历学生列表
printStudentScores(students);
}
private static void printStudentScores(List<Student> students) {
for (Student student : students) {
System.out.println("Student Name: " + student.getName());
System.out.print("Scores: ");
// 遍历每个学生的成绩
for (Integer score : student.getScores()) {
System.out.print(score + " ");
}
System.out.println();
}
}
}
三、代码解析
在上面的代码中,我们首先创建了两个学生对象 student1
和 student2
,每个学生都有自己的名称和成绩列表。然后我们将这两个学生对象添加到一个 List 中。通过调用 printStudentScores
方法,我们可以遍历这个学生列表,输出每个学生的名称和成绩。
遍历逻辑
- 首先遍历学生的 List(
students
)。 - 对于每一个
Student
对象,获取其姓名。 - 然后获取学生的成绩 List,并在其中进行遍历,以输出每个成绩。
四、类图与关系图
为了进一步说明我们的数据结构,以下是类图和关系图。
类图
classDiagram
class Student {
+String name
+List<Integer> scores
+getName(): String
+getScores(): List<Integer>
}
关系图
erDiagram
STUDENT ||--o{ SCORE: has
STUDENT {
string name
}
SCORE {
integer score
}
五、总结
通过上述示例,我们成功构建了一个包含学生及其成绩的嵌套列表的结构,并使用了 Java 的列表遍历特性来演示如何逐一访问嵌套的 List。这样的结构在很多情况下都十分实用,比如在处理班级学生成绩、订单产品清单等场景中。
使用 Java 的 List 和简单的循环语句,我们可以快速地遍历复杂的数据结构。并且,通过使用清晰有序的类设计,我们更容易扩展功能或者对数据进行处理。
希望这篇文章对您理解如何在 Java 中遍历包含 List 的 List 能有所帮助!如有任何疑问,请随时提出。