如何基于ArrayList生成可变数量的排列?

时间:2012-07-09 20:49:02

标签: arraylist iteration permutation

我正在建立一个程序,通过输入班级编号和优先级来帮助学生设置日程安排。学生应该可以插入三到十个课程,并且该课程将根据学生设置的参数提供二十个“最佳”课程表。但是,每个类都有可变数量的类部分可供选择。 (例如,可以在周一/周三/周五上课,分别为8,10或11或周二/周四上课,分别为11,3或5:30)。除此之外,学生可以选择输入任意数量的课程。鉴于此,我一直难以设置algorhythm来生成所有可用的日历。 (日历也将受到学分限制)

每次运行程序时,都会创建一些课程实例。每个Course对象都有一个ClassSection实例的ArrayList,每个实例都有一个ClassTime实例的ArrayList。每个ClassTime实例都有一个开始时间和每周运行的每一天的结束时间。

我创建了一个Schedule类,它包含几个ClassSection实例。它有一个返回false的方法,试图添加一个ClassSection,它的ClassTime干扰已经添加的ClassSection的ClassTime,或者添加一个ClassSection用于添加相同的Course。如果添加没有问题,该方法返回true。

我的目标是将我的ArrayList转换为ArrayList,其中Calendar ArrayList具有所有CourseSection实例的所有可能的排列,而不会超过信用计数。然后我会适当地对每个日历进行排名,并从那里继续。

任何人都可以帮助我使用algorhythm迭代并制作这些日历吗?我真的遇到了麻烦。

注意:这是我第一次提出问题,如果我提供的信息太少/太多,我道歉。

0 个答案:

没有答案