【问题标题】:How to get an attribute of an object that is stored in array list of array lists?如何获取存储在数组列表的数组列表中的对象的属性?
【发布时间】:2020-09-02 16:54:57
【问题描述】:

我有一个 arrayList LAL,它通过 add 函数填充了其他 arraylists,就像这样:

for(int i=0;i<v_amountComponentOptions;i++){
    ArrayList AL=new ArrayList<CustomerOrder>();
    LAL.add(AL);
}

然后我将订单(订单具有产品和数量属性)添加到这个数组列表列表中,如下所示:

LAL.get(0).add(order);

当我尝试如下绘制数量时,出现错误。它说没有数量价值。

traceln(LAL.get(0).get(0).quantity);

但是,当我写的时候;

traceln(LAL.get(0).get(0).quantity);

那么,输出是:

root( product = 1, quantity = 63 )

我的意思是我需要获取数量值。谁能告诉我该怎么做? 非常感谢。

【问题讨论】:

  • 行为不同的两个语句看起来相同。还有你的班级是什么样的?你有getter和setter吗?这些字段是否可访问?
  • 发布您的 CustomerOrder 课程。看起来数量在 CustomerOrder 上不存在或者是私有的。

标签: java arraylist anylogic


【解决方案1】:

一种可能性是使用流并将所有数量值放在一个列表中。假设数量是 Integers 并且数量值是可访问的,你可以这样做。

List<Integer> list = LAL.stream()
                 .flatMap(List::stream)
                 .map(a->a.quantity)
                 .collect(Collectors.toList());

如果你有吸气剂,那就更好了。

List<Integer> list = LAL.stream()
                 .flatMap(List::stream)
                 .map(CustomerOrder::getQuantity)
                 .collect(Collectors.toList());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-17
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    相关资源
    最近更新 更多