这是我到目前为止所做的,但不是仅仅因为某种原因添加对象,而且还会在添加的对象之前出现10。
public void addObject(Object object) {
/**
* Add object to myObjects and update currentObject. If there is no room
* in myObjects, the array will have to be resized by adding
* ARRAY_EXPAND entries.
*/
if (currentObject >= myObjects.length) {
Object[] newObjects = Arrays.copyOf(myObjects, (myObjects.length + ARRAY_EXPAND));
myObjects[currentObject] = object;
myObjects = newObjects;
}
currentObject++;
}
我使用我创建的方法打印出数组
public void showAll() {
for (int i = 0; i < myObjects.length -1; i++) {
if (myObjects[i] != null) {
System.out.println(myObjects[i].toString());
}
}
}
这是我测试它的方式
Object[] array1 = {0,1,2,3,4,5,6,7,8,9,10};
ObjectArray testArray1 = new ObjectArray(array1);
testArray1.showAll();
testArray1.addObject(5);
testArray1.showAll();
这是我得到的输出:
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
10
5
在5之前的最后10个不应该在那里,它应该是:
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
5
PS。不要提及有关ArrayList和使用array.add()的任何内容;我已经知道了这一点。
答案 0 :(得分:4)
你是什么意思&#34;这是我应该得到的输出&#34;?
Object[] array1 = {0,1,2,3,4,5,6,7,8,9,10};
ObjectArray testArray1 = new ObjectArray(array1);
testArray1.showAll();
testArray1.addObject(5);
testArray1.showAll();
你有一个数字为0-10的数组,你加5。你得到的输出是你应该得到的输出。
答案 1 :(得分:1)
您的showall方法看起来有轻微错误
public void showAll() {
for (int i = 0; i < myObjects.length -1; i++) {
if (myObjects[i] != null) {
System.out.println(myObjects[i].toString());
}
}
}
你可能想要
for (int i = 0; i <= myObjects.length-1; i++) {
或
for (int i = 0; i < myObjects.length; i++) {
因为它代表了,你不会显示数组的最后一个对象
(我会将此作为评论发布而不是答案,但我没有足够的声誉点)