使用循环java生成数组的名称

时间:2018-03-27 08:50:50

标签: java loops arraylist

我想为每个创建的新数组生成一个新名称。

我有一个带有构造函数的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等。最后,能够打印这些名称。

3 个答案:

答案 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