访问集合中的数据

时间:2013-11-14 15:51:30

标签: java hashset

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

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

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

1 个答案:

答案 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