2013-07-12 25 views
6

Im sử dụng arraydeque để tạo ra danh sách các mục và vượt qua chúng thông số (Items là lớp)ArrayDeque thêm nhiều yếu tố

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

Nhưng tôi có vấn đề với java ArrayDeque. Có thể có nhiều cách để thêm nhiều hơn một phần tử cùng một lúc. Ví dụ. Tôi muốn thêm cùng một lúc TableTypecolourOfTable vào ArrayDeque.

Trong C++ tôi có thể thực hiện nó với điều này

vector<Item>Items 

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

tôi muốn làm điều tương tự với Java. Thay vì tạo ra một obj mới cho mỗi mục, như:

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

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

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

Nhưng thay vì obj Tôi muốn thêm "CoffeTable", "brown" cùng một lúc và với một dòng mã (như trong C++ chẳng hạn) vào mảng Items.

tôi đã cố gắng một cái gì đó như thế

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

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

Nhưng sau đó đã nhận lỗi trong khi tạo ra tạo ra phương pháp 'Mặt hàng (String, String)'

+1

+1 để giải thích rõ hơn, mặc dù câu hỏi đầu tiên. –

+0

Bạn có thể mở rộng lớp ArrayDeque và thực hiện các phương pháp của riêng bạn để thêm các phần tử mới. –

Trả lời

2

Bạn có thể đơn giản tạo ra các mục mới trong tiếng gọi của add:

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

Vì vậy, bạn không cần biến rõ ràng.

Cũng lưu ý rằng trong các tên biến Java thường bắt đầu bằng ký tự chữ thường.

+0

Im mới lập trình, do đó, im làm một số sai lầm ^^ –

+0

Và cảm ơn bạn cũng trả lời. –

+2

@ MartynasŽukovas không có vấn đề gì với việc mới lập trình. Chúng ta đều bắt đầu vào một thời điểm nào đó. Miễn là bạn lịch sự, bạn sẽ nhận được nhiều câu trả lời hữu ích ngay cả trên các chủ đề không mong đợi ... –

2

Bạn sẽ phải tạo đối tượng mới để giữ 2 giá trị này. Bạn có thể làm điều này:

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

Bất cứ điều gì khác mà bạn đưa ra sẽ là cú pháp đường cho trên

Ví dụ: bạn có thể thêm một phương pháp static đến lớp học của bạn:

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

Và sử dụng nó sau:

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

Cảm ơn, bây giờ tôi đã hiểu những gì tôi muốn ^^ –

1

Đây là giải pháp mà woul d chắc chắn làm việc. Bạn có thể thêm một chức năng để lớp học của bạn itemAdd() như sau:

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

tương tự của nó với những gì u cần phải làm gì !! Hay nhất của may mắn :)