Iterator调用next()或previous()后才可以remove或set
ListIterator x = a.listIterator(a.size() / 2);
//x.remove();
//Exception in thread "main" java.lang.IllegalStateException
Map可以通过keySet, values操作
m.keySet().removeAll(m.keySet());
System.out.println("m.isEmpty(): " + m.isEmpty()); //print empty
m.values().removeAll(m.values());
System.out.println("m.isEmpty(): " + m.isEmpty()); //print empty
keySet()方法会产生一个 Set,它由 Map 中的键后推得来。在这儿,它只被当作一个 Collection 对待。values()也得到了类似的对待,它的作用是产生一个 List,其中包含了 Map中的所有值(注意键必须是独一无二的,而值可以有重复)。由于这些 Collection 是由 Map 后推得到的,所以一个 Collection 中的任何改变都会在相应的 Map 中反映出来。