我的问题是如何将一个对象添加到数组中,在我的情况下,我有一个包含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");
但我的程序不会运行..任何人都知道怎么做?
答案 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: Collections和Language 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;
}