Я бы порекомендовал вам не возвращать соединения так, как вы.
Ваш getConnections должен возвращать только
Collection<IConnection>
public Collection<IConnection> getConnections()
{
return connections;
}
Внутри вашего класса вы можете выбрать, как вы хотите или должны хранить их
private Set<IConnection> connections;
Рассматривайте двойной цикл как проблему в дизайне вашего класса.
Если я как пользователь вашего класса буду писать двойной цикл каждый раз, я перестану использовать ваш класс. Так сделают ваши коллеги.
for (IConnection connection : provider.getConnections())
{
connection.doAction();
}