1.List集合在使用indexOf方法时,是用参数与集合中所有元素进行equals ,对于自定义类,需要重写equals方法,因为List是有顺序的,在比较时,从头到尾依次比较,如果集合中有一个元素与参数equals为true,那么就将这个元素索引返回。
2.Set<Integer> keys=map.keySet();
for(Iterator<Integer> it=keys.iterator();it.hasNext();){
int key=it.next();
String value=map.get(key);
System.out.println("KEY:"+key+" VALUE:"+value);
}
上面红字部分是正常的方法,现在将红字部分换为:
System.out.println("KEY:"+it.next()+" VALUE:"+map.get(it.next()));
输出结果是错误的,而且会出现异常
打印的里面出现了 2个 it.next(),it.next()就不断往下一个去了。key和value的值也不对应了。当基数个的时候,第一个it.next()就到底了,后面就要报错了。