2012-04-15 61 views
0

目前我有這樣構成的陣列:一個可以處理Java中N個元素的數組?

Car[] garage = new Car[5]; 
garage[0] = new Car("Ford", "Focus", "S301 ABN"); 
garage[1] = new Car("Opel", "Astra", "WA55 AAP"); 
garage[2] = new Car("Ford", "Explorer", "L66 4ABE"); 
garage[3] = new Car("Dodge", "Viper", "FA55 SAM"); 
garage[4] = new Car("Ferrari", "F50", "SAS3 47S"); 

然而,我需要的數組的大小至通過它來自的JComboBox用戶定義的值來設置。我有JComboBox設置值工作,但它會拋出一個ArrayIndexOutOfBoundsException,因爲存在的元素不在數組索引範圍內。所以我的問題是,在用戶選擇數組的大小之後,我應該採用什麼方式將元素添加到數組中?

+7

使用'ArrayList'。 – 2012-04-15 23:46:18

+0

請發佈一些代碼,涉及什麼*不工作*,而不是什麼:) – 2012-04-15 23:47:33

+3

ArrayList 將解決這個異常,但如果你已經構建了一個正確大小的數組,這個異常不應該被拋出。 – 2012-04-15 23:47:39

回答

2

導入java.util.ArrayList,並使用ArrayList數據結構而不是普通數組。

要做到同樣的事情,你的代碼貼出來,你會使用類似的代碼是這樣的:

List<Car> garage = new ArrayList(); 
garage.add(new Car("Ford", "Focus", "S301 ABN")); 
//etc 

要獲得車庫的第n個元素,使用garage.get(n)

+0

感謝您對第n個元素的幫助。使用這個我創建了一個所有Car對象的ArrayList,然後使用for循環將它們添加到普通數組中,如下所示: 'List garage = new ArrayList(); (新車(「福特」,「焦點」,「S301 ABN」)); (新車(「歐寶」,「阿斯特拉」,「WA55 AAP」)); (新車(「福特」,「資源管理器」,「L66 4ABE」)); 汽車[]汽車=新車[sNum]; (int j = 0; j SJB 2012-04-16 00:21:59

+0

你可以這樣做。一個數組列表可以用來完全替代數組,儘管... – apnorton 2012-04-16 01:21:26

相關問題