【发布时间】:2014-08-01 07:20:16
【问题描述】:
我正在尝试使用一些逻辑从 TreeMap 中删除一些条目。这是我的代码
TreeMap<String, Object> treeMap = someEntries();
Iterator<Entry<String, Object> iter = treeMap.entrySet().iterator();
Map.Entry<String, Object> entry = null;
while ((entry = iter.next()) != null) {
if (!entry.getKey().contains(search)) {
iter.remove();
}
}
得到异常:-
java.util.NoSuchElementException
at java.util.TreeMap$PrivateEntryIterator.nextEntry(TreeMap.java:1113)
at java.util.TreeMap$EntryIterator.next(TreeMap.java:1151)
at java.util.TreeMap$EntryIterator.next(TreeMap.java:1146)
什么是异常?这是迭代过程中的错误。也请给我一个正确的方法。
【问题讨论】:
-
(entry = iter.next()) != null...当迭代器没有更多元素时,iter.next()不会是null,而是抛出异常。