Advertisement
Guest User

Untitled

a guest
Jul 8th, 2015
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.69 KB | None | 0 0
  1. class iterator
  2. {
  3.     public static void main(String[] args)
  4.     {
  5.         new iterator();
  6.     }  
  7.  
  8.     public iterator()
  9.     {
  10.         String gyumolcsok[] = {"alma", "körte", "dinnye", "barack", "ribizli"};
  11.  
  12.         StringKontener sk = new StringKontener(gyumolcsok);
  13.  
  14.         for (Iterator si = sk.getIterator(); si.hasNext();)
  15.         {
  16.             String gyumolcs = (String) si.next();
  17.             System.out.println(gyumolcs);
  18.         }
  19.  
  20.         Iterator si2 = sk.getIterator();
  21.         while (si2.hasNext())
  22.         {
  23.             String gyumolcs = (String) si2.next();
  24.             System.out.println(gyumolcs);
  25.         }
  26.     }
  27. }
  28.  
  29. // Kell ként inteface a dologhoz: Container, Iterator
  30. interface Container
  31. {
  32.     public Iterator getIterator();
  33. }
  34.  
  35. interface Iterator
  36. {
  37.     public Boolean hasNext();
  38.     public Object next();
  39. }
  40.  
  41. // Az iterálandó tömböt egy Container  interface-t megvalósító osztályba kell bele tenni.
  42. class StringKontener implements Container
  43. {
  44.     public String _Strings[] = null;
  45.  
  46.     public StringKontener(String[] bemenet)
  47.     {
  48.         this._Strings = bemenet;
  49.     }
  50.  
  51.     @Override
  52.     public Iterator getIterator()
  53.     {
  54.         // Mivel nem nested osztály, ezért átdobjuk a az Iteratornak
  55.         // hogy lássa a változókat. objektum összefűzés.
  56.         return new StringIterator(this); // <==[ ez a legszebb rész
  57.     }
  58. }
  59.  
  60. class StringIterator implements Iterator
  61. {
  62.     int index;
  63.     private StringKontener sk = null;
  64.  
  65.     public StringIterator(StringKontener sk)
  66.     {
  67.         this.sk = sk; // meg ez
  68.     }
  69.  
  70.     @Override
  71.     public Boolean hasNext()
  72.     {
  73.         if (index < sk._Strings.length)
  74.         {
  75.             return true;
  76.         }
  77.         else
  78.         {
  79.             return false;
  80.         }
  81.     }
  82.  
  83.     @Override
  84.     public Object next()
  85.     {
  86.         if (this.hasNext())
  87.         {
  88.             return sk._Strings[index++];
  89.         }
  90.         else
  91.         {
  92.             return null;
  93.         }
  94.     }
  95.  
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement