无法将对象添加到ArrayList

时间:2009-12-16 11:21:10

标签: java arraylist tablemodel

我的问题是如何将一个对象添加到数组中,在我的情况下,我有一个包含4列的数组类,我无法让我的程序向数组中添加一个对象。

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

但我的程序不会运行..任何人都知道怎么做?

8 个答案:

答案 0 :(得分:3)

看起来你正在将4个参数传递给3参数函数。

答案 1 :(得分:0)

通过添加,您的意思是为数组元素赋值吗?

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

答案 2 :(得分: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);

答案 3 :(得分:0)

DatabaseTable是你为实现数组行为而开发的一个类吗?如果是这种情况,则需要调试add()实现。没有背景,我们无法帮助更多。

如果由于家庭作业而自行实现数组,首先必须了解语言提供的数组结构的存在和行为。为什么你的程序不运行?它会引发异常?

检查The Java Tutorial如何覆盖数组。还应该检查Collections框架。

答案 4 :(得分:0)

取决于它所支持的内容。如果它是java.util.ArrayList,那么您可以使用其add()方法:

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

如果您想在DatabaseTable#add()方法中使用varargs,那么它应该如下所示:

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

答案 5 :(得分: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;
}

答案 6 :(得分:0)

在您的粘贴代码中,DatabaseTable.add()有三个参数,上面的代码有四个。

答案 7 :(得分: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;

}