Heim > Java > javaLernprogramm > Einführung in das Iterator-Muster von Java-Entwurfsmustern

Einführung in das Iterator-Muster von Java-Entwurfsmustern

高洛峰
Freigeben: 2017-01-19 16:06:08
Original
1264 Leute haben es durchsucht

1. Definieren Sie zunächst eine Container-Collection-Schnittstelle

package com.njupt.zhb.learn.iterator;
public interface Collection {
 void add(Object o);
 int size();
 Iterator iterator();
}
Nach dem Login kopieren

2. Definieren Sie eine ArrayList, implementieren Sie eine innere Klasse, die die Iterator-Schnittstelle implementiert.

package com.njupt.zhb.learn.iterator;
public interface Iterator {
 Object next();
 boolean hasNext();
}
Nach dem Login kopieren

4. Schreiben Sie das Testprogramm TestMain

package com.njupt.zhb.learn.iterator;
import com.njupt.zhb.learn.iterator.Collection;
public class ArrayList implements Collection {
 Object[] objects = new Object[10];
 int index = 0;
 public void add(Object o) {
  if(index == objects.length) {
   Object[] newObjects = new Object[objects.length * 2];
   System.arraycopy(objects, 0, newObjects, 0, objects.length);
   objects = newObjects;
  }
  objects[index] = o;
  index ++;
 }

 public int size() {
  return index;
 }

 public Iterator iterator() {

  return new ArrayListIterator();
 }

 private class ArrayListIterator implements Iterator {
  private int currentIndex = 0;
  @Override
  public boolean hasNext() {
   if(currentIndex >= index) return false;
   else return true;
  }
  @Override
  public Object next() {
   Object o = objects[currentIndex];
   currentIndex ++;
   return o;
  }

 }
}
Nach dem Login kopieren

Laufendes Ergebnis:

package com.njupt.zhb.learn.iterator;
import com.njupt.zhb.learn.iterator.ArrayList;
public class TestMain {
 public static void main(String[] args) {
  Collection c = new ArrayList();
  for(int i=0; i<15; i++) {
   c.add("string "+i);
  }
  System.out.println(c.size());
  Iterator it = c.iterator();
  while(it.hasNext()) {
   Object o = it.next();
   System.out.println(o.toString() + " ");
  }
 }
}
Nach dem Login kopieren

Wie oben zu sehen ist, werden überall Entwurfsmuster verwendet im objektorientierten Polymorphismus. Die Schnittstelle ruft Funktionen in Unterklassen auf.

15
string 0 
string 1 
string 2 
string 3 
string 4 
string 5 
string 6 
string 7 
string 8 
string 9 
string 10 
string 11 
string 12 
string 13 
string 14
Nach dem Login kopieren
Weitere Artikel zur Einführung des Iterator-Musters in Java-Entwurfsmuster finden Sie auf der chinesischen PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage