我正在使用arraydeque创建项目列表并向它们传递参数(项目是类)
ArrayDeque<Item> Items= new ArrayDeque<Item>();但我对java ArrayDeque有问题。也许有方法可以一次添加多个元素。例如。我想同时将TableType和colourOfTable添加到ArrayDeque中。
在c++中,我可以使用下面的代码
vector<Item>Items
Items.push_back(Item("CoffeeTable", "brown"));我想用Java做同样的事情。而不是为每个项目创建一个新的obj,如下所示:
ArrayDeque<Item> Items = new ArrayDeque<Item>();
Item obj = new Item("CoffeTable", "brown");
Items.add(obj);
Item obj1 = new Item("DinnerTable", "Black");
Items.add(obj1);但是,我想用一行代码(就像c++中的例子一样)将"CoffeTable", "brown"添加到Items数组中,而不是obj。
我试过这样的东西
ArrayDeque<Item> Items= new ArrayDeque<Item>();
Items.add(Items("CoffeTable", "brown")); 但随后在创建create方法'Items(String,String)‘时出现错误
发布于 2013-07-12 16:53:40
您可以在add的调用中简单地创建新项:
items.add(new Item("CoffeTable", "brown"));所以你不需要显式的变量。
还要注意,在Java中,变量名通常以小写字符开头。
发布于 2013-07-12 16:55:09
你必须创建一个新的对象来保存这两个值。您可以这样做:
Items.add(new Item("CoffeTable", "brown"));你想出的任何其他东西都将是上面的语法糖
例如:您可以将static方法添加到您的类:
public static Item item(String k1, String k2) {
return new Item(k1, k2);
}并在以后使用:
Items.add(item("CoffeTable", "Brown"));发布于 2013-07-12 17:22:18
这里有一个肯定有效的解决方案。可以将函数添加到类itemAdd()中,如下所示:
class Samp {
public static void main(String args[]){
//code.....
ArrayDeque<Item> Items= new ArrayDeque<Item>();
Items.add(itemAdd("CoffeeTable", "brown"));
//rest of code....
}
public static Item itemAdd(String tableType,String colourOfTable){
return new Item(tableType,colourOfTable);
}
}
class Item{
String tableType;
String colourOfTable;
Item(String tableType,String colourOfTable ){
this.tableType=tableType;
this.colourOfTable=colourOfTable;
}
}这和你需要做的事情很相似!祝你好运:)
https://stackoverflow.com/questions/17611016
复制相似问题