【发布时间】:2012-06-03 21:05:51
【问题描述】:
我有一个清单:
List<BookDTO> bookList = libraryDTO.getBooks();
int bookCounter = 0;
for (BookDTO bookdto : bookList)
{
if ((!errors.isEmpty() && !errors.containsKey("book[" + bookCounter + "].bookRefNo") || errors.isEmpty()) &&
// do comparison for each record with other records in same list ) {
errors.put("book[" + bookCounter + "].bookRefNo", messageSource.getMessage("bookRefNo.cannot.be.same", null, null));
}
bookCounter++;
}
现在,我不知道如何进行比较检查..基本上如果有匹配的记录(具有相同值的记录),我应该得到密钥。
【问题讨论】:
-
1.您的代码无法编译。 2. 你想要达到的目标不是很清楚。
-
从 if 语句中删除对
isEmpty()的调用 - 如果我正在编写实现,我(可能)在containsKey()中做的第一件事就是检查列表是否空的。此外,您将(您应该)每次都遇到相同的错误 - 在循环之外捕获它。而且我不确定以这种方式“管理”错误有什么好处。
标签: java list foreach arraylist compare