繁体   English   中英

将对象添加到对象数组

[英]Adding an object to an array of objects

我试图将新的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;
    }
}

我想在此处编写将元素添加到数组的方法。 目前,新的Entry对象已经过硬编码,但是显然它将被更改。

public class ArrayDirectory implements Directory {

    Entry[] entries = new Entry[4];


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

    }
}

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

这正是您要执行的操作:

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)将是更好的选择。

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

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

您可以维护一个变量,该变量告诉您​​目录中存在的条目数。 每次添加/删除条目时,只需更新此变量即可。 实际上,您正在实现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数据结构来添加/删除条目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM