【问题标题】:How to update a field of array elements which depends on all elements of array in single iteration?如何在单次迭代中更新依赖于数组所有元素的数组元素字段?
【发布时间】:2017-04-27 07:36:47
【问题描述】:

我有一个 ArrayList 的 Offer 对象:

public class Offer {
    String offerId;
    String offerType; //Can be REGULAR or FASTTRACK
    String ticketId
}

例如,如果我发送购买两个优惠的请求,响应中的ticketId 应该是<offerId1+offerType1>,<offerId2+offerType2>

问题是,我必须首先遍历所有报价以生成ticketId,因为ticketId 是逗号分隔的offerId+offerType 字符串,即它取决于数组的所有元素。然后我必须再次迭代报价以在每个 Offer 对象中填充相同的 ticketId。

有没有办法在单次迭代中做到这一点?

【问题讨论】:

  • 所有优惠的票证编号是否相同?
  • @YogeshPatil 否,个别优惠的ticketId 取决于他们的offerId 和offerType。

标签: java


【解决方案1】:

我认为将ticketId 存储在Offer 中没有意义。

但是对于您的问题,您可以使用包含 String 的包装器对象 - ticketId 并将对所述包装器的引用存储在您的 Offer 中。在遍历Offers 并生成ticketId 之后,您可以将其存储在您的包装器中,并且所有Offers 都可以通过它们的包装器引用访问它。

【讨论】:

  • 其实这不是确切的问题。我已经最小化了我的问题陈述,但问题或多或少与此相同。 :)
  • 但是我必须使用offer.wrapper.ticketId 引用ticketId 对吗?
  • 是的,但是在 Java 中,使用 getter 和 setter 方法来访问类的变量是有目的的。使用这种技术,您可以隐藏它是类调用者的包装器这一事实。您更新了什么?
  • 是的,我知道 getter 和 setter。我只是使用点来使其可读。
猜你喜欢
  • 2013-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-09
  • 2017-02-04
  • 2022-11-22
  • 2013-11-21
  • 1970-01-01
相关资源
最近更新 更多