title: joining results after making parallel calls using spring async
body: <p>I'm using spring @Async to make parallel calls to the same method/backend. Is there a clean way to join their results in a list? This is the pseudo code i came up with to make the calls/merge the result, but I'm not sure it's the cleanest way.</p>
  
  <pre><code>List&lt;Future&lt;String&gt;&gt; futureStringList = new ArrayList&lt;Future&lt;String&gt;&gt;();
  for(each backend call){
             Future&lt;String&gt; futureString = backend.retrieve();
             futureStringList.add(futureString);
  }
  
  
  List&lt;String&gt; actualStringList = new ArrayList&lt;String&gt;();
  
      while(!futureStringList.isEmpty()){
             for(Future&lt;String&gt; futureString: futureStringList){
                            if(futureString.isDone()){
                                           actualStringList.add(futureString.get());
                                           futureStringList.remove(futureString);
                            }
             }
      }
  </code></pre>