小编chr*_*cal的帖子

在Java中使用迭代器有什么好处

我正在浏览以下代码示例:

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时会有什么好处呢?

谢谢.

java

15
推荐指数
2
解决办法
1万
查看次数

哪些对象符合GC条件?

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的条件.

有人可以指导我完成这段代码的逻辑.

java garbage-collection

4
推荐指数
1
解决办法
1319
查看次数

标签 统计

java ×2

garbage-collection ×1