Advertisement
desislava_topuzakova

04.Froggy - Lake

Oct 16th, 2020
1,657
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.29 KB | None | 0 0
  1. package Froggy_04;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.Iterator;
  6. import java.util.stream.Collectors;
  7.  
  8. public class Lake implements Iterable<Integer>{
  9.     private int[] stones;
  10.  
  11.     public Lake(int[] stones){
  12.         this.stones = stones;
  13.     }
  14.  
  15.     @Override
  16.     public String toString() {
  17.         return String.join(", ", Arrays.stream(this.stones).boxed().collect(Collectors.toCollection(ArrayList::new)).toString().replaceAll("([\\[\\]])", ""));
  18.     }
  19.  
  20.     @Override
  21.     public Iterator<Integer> iterator() {
  22.         return new Iterator<Integer>() {
  23.             private int index = 0;
  24.             private int lastEvenIndex = stones.length % 2 == 0 ? stones.length - 2 : stones.length - 1;
  25.             @Override
  26.             public boolean hasNext() {
  27.                 return this.index < stones.length || this.index % 2 == 0;
  28.             }
  29.  
  30.             @Override
  31.             public Integer next() {
  32.                 if(this.index == this.lastEvenIndex){
  33.                     int element = stones[this.index];
  34.                     this.index = 1;
  35.                     return element;
  36.                 }
  37.                 int element = stones[index];
  38.                 this.index += 2;
  39.                 return element;
  40.             }
  41.         };
  42.     }
  43. }
  44.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement