有两个关于学生的集合一个集合放的是旧数据 一个是新数据, 比较新旧数据 找出新数据中新增的学生和删除的学生
时间: 2024-03-09 21:46:17 浏览: 68
可以使用Java中的集合操作实现这个需求。具体地,我们可以使用集合的差集、交集和并集操作来找出新增的学生和删除的学生。
假设我们有两个集合 `oldStudents` 和 `newStudents`,分别表示旧数据和新数据中的学生。我们可以按照以下步骤找出新增的学生和删除的学生:
1. 找出新增的学生:将 `newStudents` 集合减去 `oldStudents` 集合,得到的结果就是新增的学生。具体地,可以使用 `newStudents.removeAll(oldStudents)` 方法来实现。
2. 找出删除的学生:将 `oldStudents` 集合减去 `newStudents` 集合,得到的结果就是删除的学生。具体地,可以使用 `oldStudents.removeAll(newStudents)` 方法来实现。
下面是一个简单的示例代码:
```java
import java.util.ArrayList;
import java.util.List;
public class Student {
private int id;
private String name;
public Student(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public static void main(String[] args) {
List<Student> oldStudents = new ArrayList<>();
oldStudents.add(new Student(1, "Tom"));
oldStudents.add(new Student(2, "Jerry"));
oldStudents.add(new Student(3, "Alice"));
List<Student> newStudents = new ArrayList<>();
newStudents.add(new Student(2, "Jerry"));
newStudents.add(new Student(3, "Alice"));
newStudents.add(new Student(4, "Bob"));
// 找出新增的学生
List<Student> addedStudents = new ArrayList<>(newStudents);
addedStudents.removeAll(oldStudents);
System.out.println("新增的学生:");
for (Student student : addedStudents) {
System.out.println(student.getId() + " " + student.getName());
}
// 找出删除的学生
List<Student> removedStudents = new ArrayList<>(oldStudents);
removedStudents.removeAll(newStudents);
System.out.println("删除的学生:");
for (Student student : removedStudents) {
System.out.println(student.getId() + " " + student.getName());
}
}
}
```
在上面的示例中,我们定义了一个 `Student` 类表示学生信息。然后我们创建了两个集合分别表示旧数据和新数据中的学生。最后使用集合操作找出新增的学生和删除的学生,并打印输出它们的信息。
阅读全文