我正在浏览以下代码示例:
public class GenericTest {
public static void main (String[] args) {
ArrayList<String> myList = new ArrayList<String>();
String s1 = "one";
String s2 = "two";
String s3 = "three";
myList.add(s1); myList.add(s2); myList.add(s3);
String st;
Iterator<String> itr = myList.iterator();
while (itr.hasNext()) {
st = itr.next();
System.out.println(st);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道使用Iterator接口的实现而不是使用普通的for-each循环有什么好处?
for ( String str : myList ) {
System.out.println(str);
}
Run Code Online (Sandbox Code Playgroud)
如果这个例子不相关,那么当我们应该使用Iterator时会有什么好处呢?
谢谢.
class CardBoard {
Short story = 200;
CardBoard go(CardBoard cb) {
cb = null;
return cb;
}
public static void main(String[] args) {
CardBoard c1 = new CardBoard();
CardBoard c2 = new CardBoard();
CardBoard c3 = c1.go(c2);
System.out.println("c3 value : "+c3);
c1 = null;
System.out.println("c1 value : "+c1);
System.out.println("c2 value : "+c2);
// do Stuff
}
}
Run Code Online (Sandbox Code Playgroud)
这是SCJP6模拟考试的一个例子.问题是:当达到// doStuff时,有多少对象符合GC条件?答案是(2个对象),因为:只有一个CardBoard对象(c1)符合条件,但它有一个相关的Short包装器对象也符合条件.
当我执行代码时,看起来c3也指向null ...所以我会说3个对象符合GC的条件.
有人可以指导我完成这段代码的逻辑.