这个问题在这里已经有答案了:
从多个列表中生成所有组合(10个答案)
四年前关门了。
所以我想做一个课程安排。该课程将包含特定学期提供的所有课程。用户将输入他想在一个特定学期学习的课程,程序将根据用户的输入生成所有可能的时间表(例如,一个特定的课程可能在多个时间段内教给我的多名导师,这就是我所说的所有可能的时间表)
我采取的方法是这样的,我有一个课程类,它存储了关于一个特定课程的所有信息,我有一个coursecontainer,它有一个所有课程的数组列表,我很难生成所有可能的时间表,到目前为止,我有一个getallcourse方法
public ArrayList<Courses> getAllCourse(String name){
ArrayList<Courses> all = new ArrayList<>();
for (Courses course : container) {
if (course.getName().equals(name))
all.add(course);
}
return all;
}
这样我就有了用户想要的所有课程的多个ArrayList。我想不出怎么把这些组合从这里面取出来。
如果有人能告诉我怎么做或更好的方法,我将不胜感激。
谢谢您!
2条答案
按热度按时间r6vfmomb1#
你想改用Map。
创建一个Map,其中包含课程名称与课程列表的Map,然后按如下方式使用它:
eulz3vhy2#
我不完全理解你的实现,但听起来你有一个每个时段的课程列表。
如果有3个时隙,可以使用3个嵌套循环来创建所有可能的组合。我稍微简化了一下,用了
String
而不是Course
:具有以下输出: