Advertisement
hemid_sultan

java merge iterators

Feb 25th, 2021
597
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.84 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class MergeIterator implements Iterator<Integer> {
  4.  
  5.     private List<Iterator<Integer>> iterators;
  6.     private List<Integer> values;
  7.  
  8.     public MergeIterator (List<Iterator<Integer>> iterators) {
  9.         this.iterators = iterators;
  10.         this.values = new ArrayList<>();
  11.     }
  12.  
  13.     @Override
  14.     public boolean hasNext() {
  15.         return false;
  16.     }
  17.  
  18.     @Override
  19.     public Integer next() {
  20.         return foo();
  21.     }
  22.  
  23.     private Integer foo(){
  24.         if(values.size() == 0){
  25.             for(Iterator<Integer> i : iterators){
  26.                 if(i.hasNext()){
  27.                     values.add(i.next());
  28.                 }
  29.             }
  30.  
  31.             Collections.sort(values);
  32.         }
  33.         Integer result = values.get(0);
  34.         values.remove(result);
  35.         return result;
  36.     }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement