У меня есть 2 ArrayList, и мне нужен способ использовать 2 итератора

Итак, я работал над 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, который не ставит articulo, когда я использую i или без 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());
    }
}
}

person Anguis Nox    schedule 19.03.2017    source источник
comment
Каков ваш ожидаемый результат?   -  person Rao    schedule 19.03.2017


Ответы (1)


если вы хотите использовать два итератора одновременно, вы можете сделать, как показано ниже,

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());
}
person CodeIsLife    schedule 19.03.2017
comment
Так что нет проблем с тем, чтобы исключить и изменить весь ArrayList только на Iterator? - person Anguis Nox; 19.03.2017