【问题标题】:How to add elements to list dynamicly with for loop in Java?如何在Java中使用for循环动态添加元素列表?
【发布时间】:2023-03-06 17:04:01
【问题描述】:

我有这些食物:奶酪苹果 我已经为他们声明了列表:

List<String> foods = new ArrayList<>();
List<Integer> quantity = new ArrayList<>();

foods 我存储他们的名字,在quantity 他们的数量。一种食物的最大数量是7。例如,如果我们要添加10肉,则必须这样存储:

Lists index 0 index 1
Foods meat meat
Quantity 7 3

有没有办法做到这一点,或者有另一种(或更简单的)技术可以做到这一点?

【问题讨论】:

  • 我建议您提出比列表更好的抽象。 “对象”这个名字太笼统了。我会将数量与集合一起封装到抽象中。隐藏凌乱的细节——这就是面向对象编程的意义所在。这里“餐”、“奶酪”和“苹果”的常见抽象是什么?你想完成什么?
  • 我 100% 同意达菲莫。但是您的问题的答案是您使用add 方法之一将元素添加到List;有关详细信息,请参阅 javadocs:docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/…

标签: java arrays list arraylist


【解决方案1】:

创建一个对象来存储项目(餐/苹果/奶酪)和数量,使用while循环遍历数量,并设置项目对象。

private static final int MAX_ALLOWED_QUANTITY = 7;

public static void main(String[] args)
{
    List<Order> orderList = new ArrayList<Order>();
    placeOrder(orderList, "meal", 10);
    
    for (Order orderObj : orderList)
        System.out.println("Item - "+orderObj.getItem()+", Quantity - "+orderObj.getQuantity());
}

private static void placeOrder(List<Order> orderList, String item, int quantity)
{
    while (quantity > 0)
    {
        Order orderObj = new Order();
        orderObj.setItem(item);

        if (quantity >= MAX_ALLOWED_QUANTITY)
            orderObj.setQuantity(MAX_ALLOWED_QUANTITY);
        else
            orderObj.setQuantity(quantity);

        orderList.add(orderObj);
        quantity = quantity - MAX_ALLOWED_QUANTITY;
    }
}

输出

Item - meal, Quantity - 7
Item - meal, Quantity - 3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-25
    • 2020-08-12
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 2021-12-15
    • 2013-11-16
    • 2018-05-18
    相关资源
    最近更新 更多