Maison > Java > javaDidacticiel > Introduction au modèle Iterator des modèles de conception Java

Introduction au modèle Iterator des modèles de conception Java

高洛峰
Libérer: 2017-01-19 16:06:08
original
1299 Les gens l'ont consulté

1. Définissez d'abord une interface de collection de conteneur

package com.njupt.zhb.learn.iterator;
public interface Collection {
 void add(Object o);
 int size();
 Iterator iterator();
}
Copier après la connexion

2. Définissez une interface d'itérateur

package com.njupt.zhb.learn.iterator;
public interface Iterator {
 Object next();
 boolean hasNext();
}
Copier après la connexion

3. classe interne qui implémente l’interface Iterator.

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;
  }

 }
}
Copier après la connexion

4. Écrivez le programme de test TestMain

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() + " ");
  }
 }
}
Copier après la connexion

Résultat de l'exécution :

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
Copier après la connexion

Comme le montre ce qui précède, les modèles de conception sont utilisés partout. en orienté objet du polymorphisme. L'interface appelle des fonctions dans des sous-classes.

Pour plus d'articles liés à l'introduction du modèle Iterator dans les modèles de conception Java, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers numéros
Impossible d'installer Java
Depuis 1970-01-01 08:00:00
0
0
0
Java peut-il être utilisé comme backend du Web ?
Depuis 1970-01-01 08:00:00
0
0
0
Installer JAVA
Depuis 1970-01-01 08:00:00
0
0
0
Aide : Données chiffrées JAVA Décryptage PHP
Depuis 1970-01-01 08:00:00
0
0
0
Est-ce en langage Java ?
Depuis 1970-01-01 08:00:00
0
0
0
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal