如何通过一个Collection <集>
迭代我有这样的事情:如何通过一个Collection <集<IConnection>>
something need here = scope.getConnections();
//getConnections() returns Collection<Set<IConnection>>
我需要通过所有连接迭代(东西了getConnections()
回报)
如何做到这一点?
for (Set<IConnection> set : scope.getConnections()) {
for (IConnection iConnection : set) {
// use each iConnection
}
}
你的'泛型'在哪里? – 2009-11-14 15:23:32
Collection<Set<IConnection>> sets = scope.getConnections();
for (Set<IConnection> set : sets) {
for (IConnection connection : set) {
//do something
}
}
哪里是你的'泛型'? – 2009-11-14 15:27:57
泛型在那里,但Bozho没有正确使用代码风格。我为他解决了这个问题。 – 2009-11-14 15:30:37
啊,是的,对不起。我很着急,没有检查:) – Bozho 2009-11-14 20:08:08
我建议你不要在你的方式返回连接。
你getConnections必须返回只
Collection<IConnection>
public Collection<IConnection> getConnections()
{
return connections;
}
类里面你可以选择你想要的方式或需要来存储它们
private Set<IConnection> connections;
考虑双回路作为您一流的设计有问题。
如果我作为班级的用户必须每次都写双循环,我将停止使用你的班级。所以会做你的同事。
for (IConnection connection : provider.getConnections())
{
connection.doAction();
}
scope.getConnections()来自引用的库,所以我不能那样做,我只是使用它 – Omu 2009-11-14 15:53:46
好的。我知道了。如果你只需要所有的连接,我会建议在连接上写一个包装类或者Util方法两个循环。 – 2009-11-14 15:59:15
两嵌套for循环的答案很可能是你所需要的,但要注意,你也可以通过“关系”集合Iterables.concat()在谷歌的集合,并获得了一个“扁平化”迭代。
你有IDE吗?它们中的大多数有助于编写返回类型值,并且还可以插入collection-loop-code。 – 2009-11-14 15:21:06
:)是的,我有日食,我只是非常新的Java和日食 – Omu 2009-11-14 15:24:03
你是否重新创建连接池?我建议使用完全开发,测试和维护连接池框架的第三方,如C3P0或Proxool。 – BalusC 2009-11-14 15:39:56