如何将对象添加到数组

时间:2014-04-20 03:46:55

标签: java arrays

这是我到目前为止所做的,但不是仅仅因为某种原因添加对象,而且还会在添加的对象之前出现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()的任何内容;我已经知道了这一点。

2 个答案:

答案 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++) {

因为它代表了,你不会显示数组的最后一个对象

(我会将此作为评论发布而不是答案,但我没有足够的声誉点)