title: How to combine several iterators to one?
body: <p>Can I return several iterators like one? For example in <code>iterator()</code> method maybe I can combine iterators like one?</p>
  <pre><code>import java.util.Collections;
  import java.util.Iterator;
  import java.util.List;
  
  public class Addresses implements Iterable&lt;Address&gt; {
      private final Address main;
      private final List&lt;Address&gt; additional;
      private final List&lt;Address&gt; verified;
  
      public Addresses(Address main, List&lt;Address&gt; additional, List&lt;Address&gt; verified) {
          this.main = main;
          this.additional = additional;
          this.verified = verified;
      }
  
      public Address getMain() {
          return main;
      }
  
      public List&lt;Address&gt; getAdditional() {
          return additional;
      }
  
      public List&lt;Address&gt; getVerified() {
          return verified;
      }
  
      @Override
      public Iterator&lt;Address&gt; iterator() {
          // return 3 iterators main and additional and verified like one?
          return additional.iterator() + verified.iterator() + Collections.singletonList(main).iterator();
      }
  
  }
  </code></pre>
  <p>I just need to iterate through all items in both lists and the main address in one cycle but have them separated.  For example, I am going to use it like this</p>
  <pre><code>User user = ...
  Addresses addresses = new Addresses(user.getMainAddress(), user.getAdditionalAddressess(), user.getVerifiedAddressess());
  //iterate through addresses and change some fields an each address
  user.setMain(addresses.getMain());
  user.setAdditional(addresses.getAdditional());
  user.setVerified(addresses.getVerified());
  </code></pre>