6

arraydeque用来创建项目列表并传递参数(项目是类)

ArrayDeque<Item> Items= new ArrayDeque<Item>();

但我对 java ArrayDeque 有问题。也许有办法一次添加多个元素。例如。我想同时添加TableTypecolourOfTableArrayDeque 中。

在 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);

但是obj我不想同时将 "CoffeTable", "brown"一行代码(如在 c++ 示例中)添加到Items数组中。

我试过类似的东西

ArrayDeque<Item> Items= new ArrayDeque<Item>();

Items.add(Items("CoffeTable", "brown")); 

但是在创建创建方法'Items(String,String)'时出现错误

4

3 回答 3

3

您可以在 add 调用中简单地创建新项目:

items.add(new Item("CoffeTable", "brown"));

因此,您不需要显式变量。

另请注意,在 Java 中,变量名通常以小写字符开头。

于 2013-07-12T08:53:39.523 回答
2

无论如何,您都必须创建一个新对象来保存这两个值。你可以这样做:

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-12T08:55:08.890 回答
1

这是一个肯定会起作用的解决方案。您可以向您的类 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;
    }
}

它类似于你需要做的!祝你好运:)

于 2013-07-12T09:22:18.160 回答