Java集合框架是Java语言提供的一套丰富多样的数据结构和算法的实现,包括各种集合接口(如List, Set, Map等)和它们的具体实现类(如ArrayList, HashSet, HashMap等)。下面我将提供一个使用Java集合框架的简单实例,演示如何使用List和Set接口来存储和操作数据。
实例:学生信息管理
假设我们有一个学生信息管理系统,需要存储学生的姓名和年龄,并且我们想要实现以下功能:
1. 添加学生信息
2. 列出所有学生信息
3. 查找特定姓名的学生
4. 删除特定姓名的学生
首先,我们定义一个Student类来存储学生的姓名和年龄:
java复制代码
|
public class Student { |
|
private String name; |
|
private int age; |
|
|
|
public Student(String name, int age) { |
|
this.name = name; |
|
this.age = age; |
|
} |
|
|
|
public String getName() { |
|
return name; |
|
} |
|
|
|
public int getAge() { |
|
return age; |
|
} |
|
|
|
@Override |
|
public String toString() { |
|
return "Student{" + |
|
"name='" + name + '\'' + |
|
", age=" + age + |
|
'}'; |
|
} |
|
} |
然后,我们创建一个StudentManager类来管理学生信息,并使用List和Set来存储学生对象:
java复制代码
|
import java.util.ArrayList; |
|
import java.util.HashSet; |
|
import java.util.List; |
|
import java.util.Set; |
|
|
|
public class StudentManager { |
|
private List<Student> studentList; |
|
private Set<String> studentNameSet; |
|
|
|
public StudentManager() { |
|
studentList = new ArrayList<>(); |
|
studentNameSet = new HashSet<>(); |
|
} |
|
|
|
public void addStudent(Student student) { |
|
studentList.add(student); |
|
studentNameSet.add(student.getName()); |
|
} |
|
|
|
public void listAllStudents() { |
|
for (Student student : studentList) { |
|
System.out.println(student); |
|
} |
|
} |
|
|
|
public Student findStudentByName(String name) { |
|
for (Student student : studentList) { |
|
if (student.getName().equals(name)) { |
|
return student; |
|
} |
|
} |
|
return null; |
|
} |
|
|
|
public void deleteStudentByName(String name) { |
|
Student student = findStudentByName(name); |
|
if (student != null) { |
|
studentList.remove(student); |
|
studentNameSet.remove(name); |
|
} |
|
} |
|
} |
最后,我们在主函数中演示如何使用StudentManager:
java复制代码
|
public class Main { |
|
public static void main(String[] args) { |
|
StudentManager manager = new StudentManager(); |
|
|
|
// 添加学生信息 |
|
manager.addStudent(new Student("Alice", 20)); |
|
manager.addStudent(new Student("Bob", 22)); |
|
manager.addStudent(new Student("Charlie", 21)); |
|
|
|
// 列出所有学生信息 |
|
System.out.println("所有学生信息:"); |
|
manager.listAllStudents(); |
|
|
|
// 查找特定姓名的学生 |
|
Student foundStudent = manager.findStudentByName("Bob"); |
|
if (foundStudent != null) { |
|
System.out.println("找到学生: " + foundStudent); |
|
} else { |
|
System.out.println("未找到学生 Bob"); |
|
} |
|
|
|
// 删除特定姓名的学生 |
|
manager.deleteStudentByName("Charlie"); |
|
System.out.println("删除 Charlie 后的学生信息:"); |
|
manager.listAllStudents(); |
|
} |
|
} |
这个示例演示了如何在Java中使用集合框架来管理一组学生对象。我们使用了List来维护学生的顺序,并使用Set来快速检查某个学生姓名是否已存在。List和Set都是Java集合框架中的接口,它们的实现类(如ArrayList和HashSet)提供了高效的存储和检索机制。
请注意,这个示例中的findStudentByName方法并不是最高效的,因为它遍历了整个studentList来查找学生。在实际应用中,如果经常需要按姓名查找学生,可能考虑使用Map<String, Student>来存储学生信息,其中键是学生的姓名,这样查找操作就是O(1)复杂度了。