【发布时间】:2021-01-21 06:59:21
【问题描述】:
我正在开发一个自定义的ArrayList 实现,我有一种方法试图从数组中删除每个条件的项目,例如E[] 元素。通过执行以下操作来初始化数组:
String[] contents = {"chicken", "hippo", "goat"};
ArrayI<String> newarray = new ArrayI(contents);
newarray.chooser(new LongChooser());
它应该删除长度为 4 或更少的单词并返回一个这样的数组:
["chicken", "hippo"]
我正在尝试不使用任何内置方法,例如 remove()、clone()、arraycopy() 等。我似乎无法让它工作,我'我尝试创建一个重复的数组并尝试像这样复制元素:
E[] copy = (E[]) (new Object[this.size-1]);
for (int i = 0; i < size; i++) {
if (shorter) {
copy[i] = elements[i];
}
else {
for (int j = i; j<this.size-1; j++) {
elements[j] = elements[j+1];
}
elements[size-1] = null;
size -= 1;
}
for (int i =0; i< copy.length; i++) {
elements[i] = copy[i];
}
size -= 1;
我知道这不是正确的方法,因为它们不是相同大小的数组,只返回[longword, longerword, null]。此外,我很确定我应该使用 size 变量,但它似乎没有多大作用。
如何让它工作?谢谢。
【问题讨论】:
-
您为什么不想首先使用这些方法?它们旨在帮助您管理列表。
标签: java arrays arraylist data-structures