我创建了这个新集,并希望将项添加到集中。但它不会进入循环。我尝试运行该程序,它不会显示在for循环中。我不确定hwy或如何更改代码以使其工作。
Set<Name> names = Sets.newHashSet();
for (Name n : names) {
System.out.println("in the for loop");
n.setName("Tom);
}
答案 0 :(得分: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