2013-07-12 24 views
6

im przy arraydeque do listy elementów stworzyć i przekazać im parametrów (elementów jest klasa)ArrayDeque dodać wiele elementów

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

Ale mam problem z java ArrayDeque. Być może istnieją sposoby na dodanie więcej niż jednego elementu naraz. Na przykład. Chcę dodać w tym samym czasie TableType i colourOfTable do ArrayDeque.

w C++ mogłem zrobić to z tego

vector<Item>Items 

Items.push_back(Item("CoffeeTable", "brown")); 

chcę zrobić to samo z Java. Zamiast tworzyć nową OBJ dla każdej pozycji, jak:

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

Item obj = new Item("CoffeTable", "brown"); 
Items.add(obj); 

Item obj1 = new Item("DinnerTable", "Black"); 
Items.add(obj1); 

Ale zamiast obj chcę dodać "CoffeTable", "brown" w tym samym czasie i z jednej linii kodu (jak w C++ przykład) do tablicy Items.

Próbowałem coś takiego

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

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

Ale potem dostał błąd podczas tworzenia tworzyć metoda „przedmioty (String, String)”

+1

+1 dla lepszego wyjaśnienia, choć pierwsze pytanie. –

+0

Możesz rozszerzyć klasę ArrayDeque i zaimplementować własne metody dodawania nowych elementów. –

Odpowiedz

2

Można prosty utworzyć nową pozycję w wezwaniu dodatku:

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

Więc nie potrzebujesz wyraźnej zmiennej.

Należy również pamiętać, że w języku Java nazwy zmiennych zwykle zaczynają się od małych liter.

+0

Jestem nowy w programowaniu, więc im robię błędy ^^ –

+0

I dziękuję za odpowiedź też. –

+2

@ MartynasŽukovas nie ma problemu z nowością w programowaniu. Wszyscy zaczęliśmy od pewnego czasu. Dopóki jesteś grzeczny, otrzymasz wiele przydatnych odpowiedzi nawet na tematy, których się nie spodziewasz ... –

2

Będziesz musiał utworzyć nowy obiekt i tak, aby zachować te 2 wartości. Można to zrobić:

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

coś jeszcze można wymyślić będzie cukier syntaktyczny dla powyższego

Na przykład: można dodać metodę static do swojej klasie:

public static Item item(String k1, String k2) { 
    return new Item(k1, k2); 
} 

I użyj go później:

Items.add(item("CoffeTable", "Brown")); 
+0

Dzięki, mam teraz to czego chciałem ^^ –

1

Oto rozwiązanie, które woul z pewnością działa. Możesz dodać funkcję do klasy itemAdd() w następujący sposób:

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

Jest podobny do tego, co powinieneś zrobić !! Powodzenia :)

Powiązane problemy