gpt4 book ai didi

java - 用于保存类(class)要求的数据结构

转载 作者:行者123 更新时间:2023-12-02 01:49:43 26 4
gpt4 key购买 nike

我正在努力寻找一种有效的方法来在类(class)内存储类(class)的要求。

例如:

  • 通过 B 类(class)即可参加 A 类(class)
  • 通过类(class) C 和 D 后,您也可以参加类(class) A

我希望能够使用树结构,这样我就可以轻松检查一个人是否通过了所有要求,但由于通过要求的多个选项,这是不可能的。

你知道有什么技术或数据结构可以解决这个问题吗?

最佳答案

Course 对象具有一系列Prevention 对象,只需满足其中一个对象。 Precession 对象具有所需的 Course 对象列表,所有这些都需要为 Precession 对象传递 实现

public class Course {
private List<Prerequisite> prerequisites;

public boolean canBeTakenBy(Student student) {
return prerequisites.isEmpty() ||
prerequisites.stream().anyMatch(p -> p.isFulfilledBy(student));
}
}

public class Prerequisite {
private List<Course> requiredCourses;

public boolean isFulfilledBy(Student student) {
return requiredCourses.stream().allMatch(student::hasPassed);
}
}

public class Student {
private Set<Course> passedCourses;

public boolean hasPassed(Course course) {
return passedCourses.contains(course);
}
}

关于java - 用于保存类(class)要求的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53160625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com