我想为每个创建的新数组生成一个新名称。
我有一个带有构造函数的SellAbleItem类,它接受以下内容:
SellAbleItems Vodka = new Brunch("Brunch", 199);
SellAbleItems Brunch = new Brunch("Vodka", 99);
我有这个数组列表
ArrayList<SellAbleItems> order = new ArrayList<SellAbleItems>();
我将这些放在我的订单数组列表中
order.add(Vodka);
order.add(Brunch);
那么,我的问题是如何为订单数组列表生成新名称?我想订单,被称为order1,order2,order3等。最后,能够打印这些名称。
答案 0 :(得分:0)
在创建地图之前,您不需要知道用户创建了多少订单,但您需要知道用户何时创建新订单。一旦你知道你可以添加一个地图来保存你的订单:
// Program initiates
Map<String, ArrayList<SellAbleItems>> orders = new HashMap<>();
// User places order 1
List<SellAbleItems> order1 = new ArrayList<>();
order1.put(Vodka);
order1.put(Brunch);
orders.put("order1", order1);
// Some time later user places order 2
List<SellAbleItems> order2 = new ArrayList<>();
order2.put(Foo);
order2.put(Bar);
orders.put("order2", order2);
然后,您可以按照Iterate through a HashMap
中所述循环浏览Map
更好的抽象是创建一个Order
类,其中List
可以Add
SellAbleItem
List<Order>
,然后你可以保留#include <iostream>
using namespace std;
int main()
{
char c;
cout << "Enter a character: ";
cin >> c;
cout << int(c);
return 0;
}
相反,但这将是一个不同的问题。
答案 1 :(得分:0)
您无需提供姓名,只需直接添加new Brunch
order.add(new Brunch("Brunch", 199));
order.add(new Brunch("Vodka", 99));
order.add(new Brunch("Whisky", 1199));
答案 2 :(得分:0)
如果你想列出所有的密钥,那么这将有效。
Map<String, ArrayList<SellAbleItems>> orders = new HashMap<>();
orders.put("orderA", order1);
orders.put("orderB", order2);
Set<String> keys = orders.keySet();
for(int i = 0; i < orders.size(); i++) {
System.out.println(keys.toArray()[i]);
}
打印:
orderA
orderB