【问题标题】:I have 2 ArrayList and I need a way to use 2 iterators我有 2 个 ArrayList,我需要一种使用 2 个迭代器的方法
【发布时间】:2017-08-10 10:19:54
【问题描述】:

所以我一直在研究 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,它会为我提供该数组上的所有信息当我使用 j 时,使用 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());
    }
}
}

【问题讨论】:

  • 你的预期输出是什么?

标签: java arraylist iterator bluej


【解决方案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());
}

【讨论】:

  • 那么只为 Iterator 省略和更改所有 ArrayList 没有问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-27
  • 1970-01-01
  • 2015-03-19
  • 1970-01-01
  • 2012-07-18
  • 2012-12-15
  • 2021-03-19
相关资源
最近更新 更多