我在试着做这个盘存计划。在我的开关的第4种情况下,我试图从我的库存文本文件中找到库存少于10项的所有项目。到目前为止,当我需要所有少于10件的物品时,我只能找到数量最少的物品。任何帮助都是非常感谢的。我在这个网站上的第一个问题,所以我希望你对我温柔哈哈。:)
case 4:
int lowest = 10;
for( int i = 0; i < allItems.length; i++) {
if( allItems[i].getNumberOfPieces() < allItems[lowest].getNumberOfPieces())
lowest = i;
}
System.out.println("\nThe items that have less than 10 pieces in stock: " + allItems[lowest]);
break;再次,这是我的第一个问题,如果问得不好,我很抱歉。
发布于 2015-09-03 16:31:45
当你发现清单小于10时,你就可以立即输出清单,而不是找到你真正想要的最小值。这也会为你节省数据结构的麻烦,除非你想以后再使用这个列表。
for( int i = 0; i < allItems.length; i++) {
int pieces = allItems[i].getNumberOfPieces();
if( pieces < 10)
System.out.println(pieces); //or whatever you'd like to print related to this index..
}发布于 2015-09-03 16:24:10
因为您需要一个低于10的项列表,所以您显然需要一个数据结构来存储多个项,而不是像变量lowest这样的项目。所以你需要这样的东西:
List<Item> lessThanTen = new ArrayList<>();
for (int i = 0; i < allItems.length; i++) {
if (allItems[i].getNumberOfPieces() < 10) {
lessThanTen.add(allItems[i]);
}
}发布于 2015-09-03 16:24:27
int lowest = 10;
List<Item> items = new List<Item>(); //Item is supertype of all items
for (int i = 0; i < allItems.length; i++)
{
if (allItems[i].getNumberOfPieces() < lowest)
{
items.add(allItems[i];//populate list of items with less than 10
}
}
System.out.println("The items that have less than 10 pieces in stock: ");
for(Item item : items)
{
System.out.println(item.name);
}https://stackoverflow.com/questions/32380764
复制相似问题