Я работал над этим фрагментом кода. Вот псевдокод того, что я хочу сделать:
a.проверьте, если размер разделов (который является списком) равен 0.
b.если размер разделов равен 0, то автоматически зачислите учащегося в раздел, вызвав section.add(newSection)
c.else, если разделы size не равен нулю, проверьте наличие конфликтов с расписанием
d.если конфликтов нет, запишите учащегося в секцию, вызвав section.add(newSection)
e.еще ничего не делайте
Java продолжает выдавать мне ошибку «java.util.concurrentmodificationexception». Я знаю, я не должен изменять размер ArrayList при обходе списка, потому что это изменит итератор. Есть ли другой способ решить эту проблему? :D
Большое спасибо. Ваша помощь высоко ценится. :)
public String enrollsTo(Section newSection){
StringBuffer result = new StringBuffer();
String resultNegative = "Failed to enroll in this section.";
String resultPositive = "Successfully enrolled in section: " + newSection.getSectionName() + ".";
int previousSectionSize = sections.size();
if(this.sections.isEmpty()){
this.sections.add(newSection);
result.append(resultPositive);
}else{
for(Iterator<Section> iterator = sections.iterator(); iterator.hasNext() ; ){
Section thisSection = iterator.next();
if(thisSection.conflictsDayWith(newSection)==false &&
thisSection.conflictsTimeWith(newSection)==false){
this.sections.add(newSection); //<-- i believe the problem lies here.
result.append(resultPositive);
}
}
}
// if(this.sections.size() == previousSectionSize){
// result.append(resultNegative);
// }
return result.toString();
}