У меня есть сценарий, когда мне нужно было пройти через HashMap, чтобы проверить нулевые значения и сгенерировать пустой компонент. Пустой bean-компонент снова будет добавлен в новую карту.Итерация через хэш-карту со строкой и список как параметры
for (String course_date : shiftSet) {
Bean courseBean = null;
boolean valueExists = false;
for (Entry<String, List<Bean>> entry: courseMap.entrySet()){
String studentDetail = entry.getKey();
String [] studentSet = StringUtils.getArray(studentDetail , ",");
String studentId = studentSet[0];
String courseId = studentSet[1];
for(Bean resultBean : entry.getValue()){
if(course_date.equalsIgnoreCase(resultBean.getCourseDate()){
valueExists = true;
}
}
if(!valueExists) {
courseBean = new Bean();
courseBean.setStudent(studentId);
courseBean.setCourse(courseId);
List<Bean> courseList = entry.getValue();
courseList.add(courseBean);
outputMap.put(studentId+courseId, courseList);
}
}
}
Булево значение всегда истинно, даже если оно не удовлетворяет условию внутреннего цикла.
Может ли кто-нибудь предложить лучшее решение для достижения желаемого результата?
Заранее спасибо
Инициализировать переменную 'false' значения в первом' for' петле ... –
не связан с вашей проблемой, но _please_ не пишет 'String value = entry.getKey();'. Запись имеет ключ и значение. Давайте не будем менять имена. –
@ Luiggi Можете ли вы объяснить, как определить индекс цикла для моего случая. Спасибо за ваши комментарии. – jaggs