2009-12-16 110 views
0

我的問題是關於如何將對象添加到數組中,在我的情況下,我有一個包含4列的數組類,我不能讓我的程序向數組添加對象。添加對象到ArrayList時遇到問題

public class DatabaseTable extends AbstractTableModel { 

    public ArrayList<Object> objects = new ArrayList<Object>(); 

    public void add(Object o, String sort, String getDesc) { 
     objects.add(o); 
    } 
    // ... 
} 

我曾嘗試用:

DatabaseTable dt = new DatabaseTable(); 
dt.add("something", "something", "something", "something"); 

,但我的程序不會運行..任何人是如何知道該怎麼辦呢?

+2

你能告訴我們DatabaseTable.add的代碼嗎? – 2009-12-16 11:24:29

+3

'不會運行' - 如何? – Joel 2009-12-16 11:30:43

+0

當我運行程序時,程序進入調試模式 – Stefan 2009-12-16 11:36:21

回答

0

通過添加,你的意思是賦值給數組元素?

yourArray[0] = yourObject1; 
yourArray[1] = yourObject2; 
//... 
0

我不知道類DatabaseTable。你用ArrayList試過了嗎? 類似於:

ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>(); 
ArrayList<String> tmp = new ArrayList<String>(); 
tmp.add("something"); 
tmp.add("foo"); 
tmp.add("bar"); 
tmp.add("wtf"); 
list.add(tmp); 
0

是DatabaseTable你開發的一些類來實現數組行爲嗎?如果是這種情況,則需要調試add()實現。沒有語境,我們無法提供更多幫助。

如果由於作業分配而自己實現數組,首先必須知道該語言提供的數組結構的存在和行爲。爲什麼你的程序不運行?它會拋出異常?

檢查陣列如何覆蓋The Java TutorialCollections框架也應該被檢查。

0

取決於它的支持。如果是爲了例如java.util.ArrayList,那麼你可以使用它的add()方法:如果你想在你的DatabaseTable#add()方法使用可變參數

List<String> list = new ArrayList<String>(); 
list.add("something"); 
list.add("something"); 
list.add("something"); 
list.add("something"); 

,那麼就應該是這樣的:

public void add(String... strings) { 
    list.addAll(Arrays.asList(strings)); 
} 

還是有點更高效:

public void add(String... strings) { 
    for (String string : strings) { 
     list.add(strings); 
    } 
} 

這種方式,你想,你可以使用它:

dt.add("something", "something", "something", "something"); 

但如果改爲由一個普通的String[]陣列的支持,那麼你就需要做一些更多的工作:

private String[] array = new String[0]; 

public void add(String... strings) { 
    int length = array.length; 
    String[] newArray = new String[length + strings.length]; 
    System.arraycopy(array, 0, newArray, 0, length); 
    array = newArray; 
    for (int i = 0; i < strings.length; i++) { 
     array[length + i] = strings[i]; 
    } 
} 

欲瞭解更多有關集合(其中ArrayList下降)和數組你可能找到有用的Sun教程:Trial: CollectionsLanguage basics: Arrays

0

您可以使用這樣的事情:

public Object[] addObjectToArray(Object[] array, Object o) 
{ 
    Object[] ret = new Object[array.length + 1]; 
    System.arraycopyt(array, 0, ret, 0, array.length); 
    ret[array.length] = o; 
    return ret; 
} 
3

它看起來像你傳遞4個參數爲3參數功能。

0

在你的pastebay代碼中,DatabaseTable.add()有三個參數,上面的代碼有四個參數。

0

您可以通過創建特定長度的數組來創建對象的數組,並且可以按位置將數組放入數組中。

public static Object [] addToArray(){ 
    List list1 = new ArrayList(); 
    list1.add("11111"); 

    List list2 = new ArrayList(); 
    list2.add("2222222222"); 

    List list3 = new ArrayList(); 
    list3.add("3333333333"); 

    List list4 = new ArrayList(); 
    list4.add("444444444"); 
    Object []arr = new Object[4]; 

    arr[0] = list1; 
    arr[1] = list2; 
    arr[2] = list3; 
    arr[3] = list4; 
    return arr; 

}