在我的数据结构类中,我的任务是创建一个给定类型的泛型对象的ArrayList。这本质上是一个类,它的行为就像一个数组,附加了一些额外的功能。看上去像这样。
public class GenericArray<T>
{
// The array
private T[] array;
private int size;
// Constructor
public GenericArray(int arrsize)
{
size = arrsize;
array = new T[size + 1];
}
// Array methods
public T getItem(int index)
{
return array[index];
}
public int getCount()
{
int count = 0;
for(int i = 0; i < array.Length; ++i)
{
if(array[i] != null)
count++;
}
size = count;
return count;
}
}我们需要创建与数组交互的各种方法。当涉及到从数组中删除项时,我遇到了一个特殊的问题。我有一个deleteLast方法,我假设它只是将最后一项设置为null,如下所示:
public void deleteLast()
{
int i = this.getCount()-1;
array[i] = null;
}但是,我得到的错误是不能将参数转换为null,因为T可能不是可空值类型,这是有意义的。但是,我不知道如何移除它们。我在Google上找不到任何有用的信息,所以我来到了Stack溢出。
任何帮助都是非常感谢的。谢谢:)
发布于 2020-07-23 19:11:40
为什么不使用List而不是T[]呢?这应该很容易解决你所有的问题!您还没有处理过数组大小更改(用于增长和减小数组大小)、枚举等方面的情况。理想情况下,我应该实现IEnumerable并实现其余的函数!
https://stackoverflow.com/questions/63061469
复制相似问题