Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class iterator
- {
- public static void main(String[] args)
- {
- new iterator();
- }
- public iterator()
- {
- String gyumolcsok[] = {"alma", "körte", "dinnye", "barack", "ribizli"};
- StringKontener sk = new StringKontener(gyumolcsok);
- for (Iterator si = sk.getIterator(); si.hasNext();)
- {
- String gyumolcs = (String) si.next();
- System.out.println(gyumolcs);
- }
- Iterator si2 = sk.getIterator();
- while (si2.hasNext())
- {
- String gyumolcs = (String) si2.next();
- System.out.println(gyumolcs);
- }
- }
- }
- // Kell ként inteface a dologhoz: Container, Iterator
- interface Container
- {
- public Iterator getIterator();
- }
- interface Iterator
- {
- public Boolean hasNext();
- public Object next();
- }
- // Az iterálandó tömböt egy Container interface-t megvalósító osztályba kell bele tenni.
- class StringKontener implements Container
- {
- public String _Strings[] = null;
- public StringKontener(String[] bemenet)
- {
- this._Strings = bemenet;
- }
- @Override
- public Iterator getIterator()
- {
- // Mivel nem nested osztály, ezért átdobjuk a az Iteratornak
- // hogy lássa a változókat. objektum összefűzés.
- return new StringIterator(this); // <==[ ez a legszebb rész
- }
- }
- class StringIterator implements Iterator
- {
- int index;
- private StringKontener sk = null;
- public StringIterator(StringKontener sk)
- {
- this.sk = sk; // meg ez
- }
- @Override
- public Boolean hasNext()
- {
- if (index < sk._Strings.length)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- @Override
- public Object next()
- {
- if (this.hasNext())
- {
- return sk._Strings[index++];
- }
- else
- {
- return null;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement