我试图编写一个简单的问题,如下所示:
本周将有你整个部门的重要会议。你清楚地记得你的老板告诉过你这件事。您唯一忘记的是会议将在一周中的哪一天举行。
你问了你的六位同事关于这次会议的事。他们谁都不知道它会在哪一天发生,但他们每个人都记得有一天它不会发生。他们记得的日子是不同的。对于像你这样聪明的程序员来说,这足以确定会议的日期。
现在我为它创建了两个数组,一个包含所有工作日,一个包含所有不会举行会议的日子,然后从中创建两个列表。
public static void main(String[] args) {
String[] notOnThisDay={"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday"};
String[] weekdays={"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
List<String> list1=Arrays.asList(weekdays);
List<String> list2=Arrays.asList(notOnThisDay);
Iterator<String> iter=list1.iterator();
while(iter.hasNext()) {
if(list2.contains(iter.next())) {
iter.remove();
}
}
for(String x:list1) {
System.out.println(x);
}
}
我的策略是遍历工作日列表,如果我发现列表中也存在任何一天notonThisDay
,则将其删除。因此,我只剩下要举行会议的那一天了,但该方法似乎有问题iter.remove()
。
请指出错误。如果我的算法很好,请给我建议。如果有更好的算法,我接受建议。