最近学习了Java的迭代器对象(iterator),它有一个方法是.next(),返回下一个,或者说游标刚刚经过的那一个元素,很好理解,但是使用的时候却让我有些疑惑
完整代码如下
public static void main(String[] args) {
// TODO Auto-generated method stub
//1)创建一个String集合,并添加元素
Collection collection01 = new LinkedList();
collection01.add("123");
collection01.add("456");
collection01.add("789");
//2)创建一个String的迭代器对象
Iterator<String> iterator01 = collection01.iterator();
//3)使用迭代器对象遍历集合
while(iterator01.hasNext()) {
String thisString = iterator01.next();//指向下一个元素
System.out.println(thisString + '\t');
}
}
当while中的代码是先新建一个String对象,然后把.next()的值赋值给String对象时,得到的结果是正常的输出值,但是如果while循环的写法是下面这种
while(iterator01.hasNext()) {
iterator01.next();
System.out.println(iterator01.toString());
}
得到的结果却是完整类名加哈希码,或者不用toString(),直接输出也是完整类名加哈希码,这是为什么呢,它在第一种写法里被强制类型转换了吗?