我有 2 个 ArrayList,我需要一种方法来使用 2 个迭代器

I have 2 ArrayList and I need a way to use 2 iterators

所以我一直在研究 BlueJ,现在我发现了一个小问题,不知道解决方案是否简单,但我卡在了一个部分,我可能需要使用 2 个迭代器,但似乎不能让它们发挥作用。

我遇到的问题是代码的最后一部分

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

仅使用 1 个 ArrayList 和 1 个迭代器就可以正常工作,当我只使用 iterator i 时,如果我只使用 iterator j,它会为我提供该数组上的所有信息当我使用 i 时不使用 articulo,或者当我使用 j 时不使用 cliente。所以是的,我需要做的是它为我提供了两个数组中的所有信息,不知道是否有不同的方法,但这就是我问的原因。

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

如果你想同时使用两个迭代器,你可以按照下面的方式做,

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