1

我已经创建了这个新集合,并希望将项目添加到集合中。但它不会进入循环。我尝试运行该程序,但它不会显示在 for 循环中。我不确定高速公路或如何更改代码以使其正常工作。

Set<Name> names = Sets.newHashSet();

      for (Name n : names) {
         System.out.println("in the for loop");
         n.setName("Tom);
}
4

1 回答 1

5

这是你的程序的作用,用英语:

 Set<Name> names = Sets.newHashSet();

让我们创建一个新的空名称集,我们将其称为“名称”

for (Name n : names) {

让我们遍历我们刚刚创建的空集中存在的所有名称。这显然是无用的,因为集合是空的。

    System.out.println("in the for loop");

让我们向控制台写入我们在循环中的信息。这永远不会被执行,因为集合是空的。

    n.setName("Tom);

让我们在循环中更改当前 Name 对象的名称。但由于循环永远不会执行,它永远不会发生。

在迭代集合中的元素之前,将元素添加到集合中:

Name n = new Name("Tom"); // this creates an new object of type Name
names.add(n); // this adds the Name we just created to the set. 
              // Now the set has 1 element.

如果要向集合中添加多个名称,还可以使用循环,并在每次迭代时创建并添加一个新名称:

for (int i = 0; i < 10; i++) {
    Name n = new Name("Tom " + i);
    names.add(n);
}
// now the set contains 10 elements: Tom 0, Tom 1, ..., Tom 9
于 2013-11-14T15:59:39.427 回答