У меня есть программа, в которой люди предпочитают сидеть рядом с другими людьми. Они сидят за столиками с установленным количеством мест. Каждое место за столом имеет назначенный ему Человек, у этого Лица есть список предпочтений, которым они хотели бы сидеть рядом. Предпочтения оцениваются от 1 до 6.Сравнение ArrayLists
ех)
Боб на сиденье 1, Он отдает предпочтение, чтобы сидеть рядом с Джилл,
и что предпочтение оценивается 6. Он действительно хочет, чтобы сидеть рядом с ней.
Джилл на сиденье 2,
Она отдает предпочтение, чтобы сидеть рядом с Бобом, который аттестован 6 также.
Джош на сиденье 3,
Он отдает предпочтение, чтобы сидеть рядом с Давидом, который не за столом. (Его оценка предпочтения не будут учитываться)
Питер на заключительном сиденье, сиденье 4.
Его предпочтения Джош, со значением 3, и Боба, со значением 5.
Что такое хороший способ узнать, как проверить, является ли Имя в предпочтениях Лица за столом с использованием ArrayLists?
Это то, что я пришел с
for (int i = 0; i < seatsList.size(); i++) { // For the seats at the table
for (int j = 0; j < seatsList.get(i).getPrefArrayList().size(); j++) { // For the prefList for each seat
if(seatsList.get(i).getPrefArrayList().contains(seatsList.get(j).getName())){
//score += seatsList.get(i).getOnePrefValue(j); //IGNORE THIS LINE FOR NOW(NOT REALLY IMPORTANT)
}
}
}
seatsList
является ArrayList, который держит все места.
getPrefArrayList()
возвращает ArrayList всех предпочтений этого человека.
getName()
просто возвращает имя человека на определенное место
В этом примере внешний цикл будет перебирать места за столом. Внутренняя петля будет перебирать предпочтения каждого Лица (или места) за столом. Поскольку у некоторых людей будет больше предпочтений, чем у других, внутренний цикл не будет иметь постоянного количества итераций. Он будет меняться в зависимости от предпочтений Лица.
Проблема с этим примером является линия 3, в пределах Условный оператор
seatsList.get(j).getName()
Поскольку существует вероятность того, что количество предпочтений человек будет иметь больше, чем количество мест за столом, вы получите ошибку индекса за пределами границ.
Есть ли в любом случае, что я мог бы это сделать? Это значение, узнайте, если любой предпочтение человека сидит за столом с ними. Ответ, вероятно, прямо на моем лице. Если кому-то интересно, это касается школьного задания с использованием генетических алгоритмов.
Вы хотите узнать, не устраиваются ли какие-либо личные предпочтения человека за столом? Или вы хотите узнать, есть ли у них какие-то предпочтения? – Quicksilver002
@ Quicksilver002 Любой из них –