将对象添加到对象数组

时间:2014-04-12 20:46:01

标签: java arrays object

我试图将一个新的Entry对象添加到一个对象数组中。我不知道如何写一个方法来做到这一点。此外,我还希望在添加新元素时增加数组的大小。

public class Entry {

    private String surname, initial, extension;

    public Entry() { }

    public Entry(String surname, String initial, String extention) {
        this.surname = surname;
        this.initial = initial;
        this.extension = extention;
    }
}

我想编写方法在这里将elemets添加到数组中。新的Entry对象目前是硬编码的,但显然会有所改变。

public class ArrayDirectory implements Directory {

    Entry[] entries = new Entry[4];


    public void addEntry(Entry newEntry) {
        newEntry = new Entry("isajas","ssds", "sasdas");

    }
}

感谢您抽出宝贵时间阅读我的问题!

3 个答案:

答案 0 :(得分:1)

以下是您完全按照自己的要求行事的方式:

public class ArrayDirectory implements Directory {
    Entry[] entries = new Entry[1];

    public void addEntry(Entry newEntry) {
        Entry[] temp = new Entry[entries.length + 1];
        for (int i = 0; i < entries.length; i++) {
            temp[i] = entries[i];
        }
        newEntry = new Entry("isajas","ssds", "sasdas");
        temp[temp.length - 1] = newEntry;
        entries = temp;
      }
}

但正如许多人所说,ArrayList(甚至是Vector)比尝试重新发明轮子更好。

答案 1 :(得分:1)

请考虑使用java.util.ArrayList。它是 List 接口&#34;&#34;可调整大小的数组实现。并提供了一个易于使用的API来添加对象,例如ArrayList<Type>().add(Object o)。看看上面的Javadoc链接,它非常方便,而且我经常使用它。

它还为您节省了来回分配临时数组和创建额外对象的额外工作......

答案 2 :(得分:0)

您可以维护一个变量,该变量告诉您​​目录中存在的条目数。 每次添加/删除条目时,只需更新此变量即可。实际上,您正在实施Stack

public class ArrayDirectory implements Directory {

  Entry[] entries = new Entry[4];
  private int numEntries = 0;

  public void addEntry(Entry newEntry) {
    if (numEntries == 4) { /* Display an error */ }

    newEntry = new Entry("isajas","ssds", "sasdas");
    entries[numEntries] = newEntry;
    numEntries++;
  }
}

或者您可以使用java的内置ArrayList数据结构来添加/删除条目。