我有 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());
}
所以我一直在研究 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());
}