如何解决如何从ArrayList中删除索引并打印已删除索引的总整数?
我想为一个仓库编写程序。 emptyStock()
方法应从列表中删除已售出的食物。 print()
方法应打印所有食物清单和已售出的食物总量(公斤)。
public class Lists {
private String name;
private String category;
private int amount;
public Lists(String name,String category,int amount) {
this.name = name;
this.category = category;
this.amount = amount;
}
public String toString() {
return name + " is " + category + " and we have " + amount + " in warehouse";
}
}
public class Food {
ArrayList<Lists> Food = new ArrayList<>();
public void add(String name,int amount) {
Food.add(new Lists(name,category,amount));
}
public void emptyStock(int index) {
Food.remove(index);
}
public void print() {
for (Lists lists : Food) {
System.out.println(lists);
}
}
public static void main(String[] args) {
Food food = new Food();
food.add("Potato","Vegetable",35);
food.add("Carrot",15);
food.add("Apple","Fruit",30);
food.add("Kiwi",5);
food.emptyStock(1);
food.emptyStock(2);
food.print();
System.out.print("");
}
}
输出需要打印如下内容:
Potato is Vegetable and we have 35 kg in warehouse
Apple is Fruit and we have 30 kg in warehouse
20 kg of food has been sold! // my code cannot print this part
我仍然不确定如何制作print()
方法来打印已从列表中删除的食物总量(kg)。
解决方法
只需添加一个类成员(在类Food
中)即可存储删除的总数。在方法emptyStock()
中,您将更新该成员的值。在下面的代码中,我添加了成员removed
。
import java.util.ArrayList;
public class Food {
int removed;
ArrayList<Lists> foods = new ArrayList<>();
public void add(String name,String category,int amount) {
foods.add(new Lists(name,category,amount));
}
public void emptyStock(int index) {
removed += foods.get(index).getAmount();
foods.remove(index);
}
public void print() {
for (Lists lists : foods) {
System.out.println(lists);
}
System.out.printf("%d kg of food has been sold!%n",removed);
}
public static void main(String[] args) {
Food food = new Food();
food.add("Potato","Vegetable",35);
food.add("Carrot",15);
food.add("Apple","Fruit",30);
food.add("Kiwi",5);
food.emptyStock(1);
food.emptyStock(2);
food.print();
System.out.print("");
}
}
class Lists {
private String name;
private String category;
private int amount;
public Lists(String name,int amount) {
this.name = name;
this.category = category;
this.amount = amount;
}
public int getAmount() {
return amount;
}
public String toString() {
return name + " is " + category + " and we have " + amount + " in warehouse";
}
}
运行上述代码时的输出是:
Potato is Vegetable and we have 35 in warehouse
Apple is Fruit and we have 30 in warehouse
20 kg of food has been sold!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。