因为第一个判断了hasNext()后才调用当前迭代器的next(),第二个你remove()之后可能hasNext()返回false了,调用next()自然抛出异常。