2017-03-19 3 views
0

Donc j'ai travaillé sur BlueJ et maintenant j'ai trouvé un petit problème je ne sais pas si la solution est facile mais je suis coincé à une partie que je besoin d'utiliser peut-être 2 itérateurs mais ne semble pas les faire fonctionner.J'ai 2 ArrayList et j'ai besoin d'un moyen d'utiliser 2 itérateurs

le problème que j'ai est la dernière partie du code

for (Iterator i = cliente.iterator(); i.hasNext(); & Iterator j = articulo.iterator(); j.hasNext()) 
{ 
    System.out.println(i.next()); 
    System.out.println(j.next()); 

Il fonctionne très bien avec seulement 1 ArrayList et 1 iterator, quand je l'utilise seulement le iterator i, il me donne toutes les informations qui sur ce tableau même si je n'utilise que le iterator j qui est sans mettre articulo quand j'utilise le i ou sans cliente quand j'utilise j. Donc, oui, j'ai besoin de travailler, c'est qu'il me donne toutes les informations qui sont dans les deux tableaux, je ne sais pas s'il existe un moyen de le faire différemment, mais c'est pourquoi je demande.

import java.util.ArrayList; 
import java.util.Iterator; 

public class Encabezado 
{ 
private ArrayList<Cliente> cliente; 
private ArrayList<Articulo> articulo; 
private String NFactura; 
private String fecha; 

public Encabezado() 
{ 
    cliente = new ArrayList<Cliente>(); 
    articulo = new ArrayList<Articulo>(); 
} 

public Encabezado(String NFactura, String fecha) 
{ 
    cliente = new ArrayList<Cliente>(); 
    articulo = new ArrayList<Articulo>(); 
    this.NFactura = NFactura; 
    this.fecha = fecha; 
} 

public void AgregarCliente(Cliente c) 
{ 
    cliente.add(c); 
} 

public void AgregarArticulo(Articulo a) 
{ 
    articulo.add(a); 
} 

public void verFactura() 
{ 
    System.out.println("Factura: " + NFactura); 
    for (Iterator i = cliente.iterator(); i.hasNext(); & Iterator j = articulo.iterator(); j.hasNext()) 
    { 
     System.out.println(i.next()); 
     System.out.println(j.next()); 
    } 
} 
} 
+0

Quelle est votre résultat attendu? – Rao

Répondre

4

si vous voulez utiliser deux iterator vous pouvez simultanément faire comme ci-dessous,

Iterator<Cliente> i = cliente.iterator(); 
Iterator<Articulo> j = articulo.iterator(); 

while (i.hasNext() && j.hasNext()) { 
    System.out.println(i.next()); 
    System.out.println(j.next()); 
} 
+0

Il n'y a donc aucun problème à omettre et à changer tous les ArrayList pour juste Iterator? –

+0

pas besoin de le changer – CodeIsLife