1

我有这样的事情:

something need here  = scope.getConnections();

//getConnections() returns Collection<Set<IConnection>>

我需要遍历所有连接(getConnections()返回的东西)

怎么做 ?

4

4 回答 4

3
Collection<Set<IConnection>> sets = scope.getConnections();

for (Set<IConnection> set : sets) {
  for (IConnection connection : set) {
     //do something
  }
}
于 2009-11-14T15:20:16.420 回答
2
for (Set<IConnection> set : scope.getConnections()) {
   for (IConnection iConnection : set) {
      // use each iConnection
   }
}
于 2009-11-14T15:21:06.340 回答
2

我建议您不要以您的方式返回连接。
您的 getConnections 必须只返回

Collection<IConnection>

public Collection<IConnection> getConnections()
{
    return connections;
}

在您的班级内,您可以选择您想要或需要的方式来存储它们

private Set<IConnection> connections;

将双循环视为您的课程设计中的一个问题。
如果我作为您班级的用户每次都必须编写双循环,那么我将停止使用您的班级。你的同事也会这样。

for (IConnection connection : provider.getConnections()) 
{
    connection.doAction();
}
于 2009-11-14T15:35:55.467 回答
0

两个嵌套的 for-loops 答案可能就是您所需要的,但请注意,您也可以将“连接”集合传递给 google-collections 中的 Iterables.concat(),并得到一个“扁平化”迭代。

http://google-collections.googlecode.com

于 2009-11-18T08:18:25.993 回答