[英]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.