Advertisement
techno-

Rebote

Nov 4th, 2022
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.23 KB | None | 0 0
  1. package e2;
  2.  
  3. import java.util.Iterator;
  4. import java.util.List;
  5.  
  6. public class Rebote implements Iterator<String> {
  7.     private List<String> lista;
  8.     private int k;
  9.     private int pos= 0;
  10.  
  11.     private int salto=1;
  12.     private boolean atras=false;
  13.  
  14.     public Rebote(List<String> lista, int k){
  15.         this.lista=lista;
  16.         this.k=k;
  17.     }
  18.  
  19.  
  20.     @Override
  21.     public boolean hasNext() {
  22.         if (lista.size()>1){
  23.             return true;
  24.         } else return false;
  25.     }
  26.  
  27.     @Override
  28.     public String next() {
  29.  
  30.         pos=pos-1;
  31.         int i;
  32.         for(i=0;i<k;i++){
  33.             if(atras){
  34.                 pos--;
  35.             }
  36.             pos=pos+salto;
  37.             if(pos== lista.size()-1) {
  38.                 salto = -1;
  39.             }else if(pos==0){
  40.                 salto = 1;
  41.             }
  42.             if(i==k-1){
  43.                 if(salto==-1){
  44.                     atras=true;
  45.                 }else atras=false;
  46.                 salto=1;
  47.             }
  48.         }
  49.  
  50.         String resultado = lista.get(pos);
  51.         return resultado;
  52.     }
  53.  
  54.     @Override
  55.     public void remove() {
  56.         lista.remove(pos);
  57.         if(pos> lista.size()){
  58.             pos=0;
  59.         }
  60.     }
  61. }
  62.  
  63.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement