6

アイテムのリストを作成し、それらにパラメーターを渡すために使用arraydequeしています(アイテムはクラスです)

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

しかし、Java ArrayDeque に問題があります。一度に複数の要素を追加する方法があるかもしれません。例えば。同時にArrayDequeにTableType追加したい。colourOfTable

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

しかし、同時に、1 つのコード行 (C++ の例のように) を配列objに追加したい のではありません。"CoffeTable", "brown"Items

私はそのようなことを試しました

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

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

しかし、作成メソッド 'Items(String,String)' の作成中にエラーが発生しました

4

3 に答える 3

2

これらの 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 に答える