我有一个数组
String[] path={abc,bcd};
我在一个方法中传递了这个数组:
addElement(path);
方法
void addElement(String[] path)
{
// here i got value suppose "qsd" and i want to add it after "bcd" ie 2 index of array
path[path.lenght]="qsd";
}
但是这给了我一个错误。
我不想使用ArrayList。
答案 0 :(得分:3)
最大的问题是Java中的数组不是简单的可调整大小。你最后做的是实际创建一个新数组,并将每个元素添加到其中。这将比ArrayList
代码慢,而且更加丑陋。
这也意味着任何指向旧数组的代码都将不再起作用。如果您只有一个实例,则可以addElement
返回新数组,如此
String[] addElement(String old[]){
String arr[] = new String[old.length+1];
//copy all the elements in old...
arr[old.length] = "whatever";
return arr;
}
然后使用
path = addElement(path);
答案 1 :(得分:1)
您应该使用ArrayList
否则,您必须通过分配原始数组+1大小的新内存来重新调整数组大小,将旧元素的元素复制到新元素中,然后添加新元素。
答案 2 :(得分:1)
你不能在GWT中改变模拟数组的大小(即使javascript数组支持这个东西)。您将始终创建一个新的数组实例。解决此问题的最常用方法是使用其中一个集合类(如java.util.ArrayList
)。例如:
ArrayList<String> path = new ArrayList<String>(Arrays.asList("abc","bbc"));
path.add("qsd");