gpt4 book ai didi

java - 返回一个新的 MenuItems ArrayList,其中仅包含当前可用的菜单项

转载 作者:行者123 更新时间:2023-12-03 01:33:57 25 4
gpt4 key购买 nike

这就是我目前所拥有的

我对如何使用我也尝试过的方法进行比较感到困惑1. items.get(i).available() == true并且还使用 .equals

  public boolean available() { return myAvailability; } 

//方法

  ArrayList<MenuItem> availableItems = new ArrayList<MenuItem>(items.size());
int i = 0;
while (i < availableItems.size())
{
boolean c = items.get(i).available();
if (c == true)
{
availableItems.add(items.get(i));
i++;
}
i++;

}
return availableItems ;

//主要内容

ArrayList<MenuItem> items = new ArrayList<MenuItem>();
items.add( new MenuItem( "Big Bad Burger", 9.95, 2.15, 1, false ) );
items.add( new MenuItem( "Cheeky Chicken", 5.95, 0.75, 1, true ) );
items.add( new MenuItem( "Wild Wings", 5.95, 0.50, 0, false ) );
items.add( new MenuItem( "Flying Fish", 15.95, 7.61, 1, false ) );
items.add( new MenuItem( "Igloo Icecream", 1.95, 0.28, 2, true ) );

ArrayList<MenuItem> available = availableItems( items );
System.out.println(available);

// should list:
// Cheeky Chicken ($5.95) and Igloo Icecream ($1.95)
for ( MenuItem item : available )
System.out.println( item.menuString() );

最佳答案

错误在这里:

while (i < availableItems.size())

因为 availableItems.size() 为 0。

解决办法是:

  1. 使用 foreach 循环,如另一个答案中所示
  2. 使用removeIf:

    ArrayList<MenuItem> availableItems = new ArrayList<MenuItem>(items);
    availableItems.removeif(item -> !item.available());
    return availableItems;

关于java - 返回一个新的 MenuItems ArrayList,其中仅包含当前可用的菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54846679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com