我有一个通用类,它应该创建一个存储在数组中的可比较集合。我非常不清楚可比性和泛型的工作方式。
public class OrderedCollection<T extends Comparable<? super T>>
{
private T collection[]; // the collection
private int size, tempValue; // how many elements currently stored
/**
* Constructor allocates array and initializes size
* @param size the number of elements stored
*/
public OrderedCollection (int capacity)
{
collection = (T[]) new Comparable[capacity];
size = 0;
}
}
首先,集合是什么类型的集合(数组、列表等)。它从未显式实例化为 new Array[] 所以我很好奇这应该如何创建一个数组。
其次,需要一种插入指定值的方法(出于测试目的,我一直使用'5')并将其分配给collection[0]。但是,当我返回 collection[0] 时,它返回为 null。下面是插入方法:
public void insert(T x)
{
collection[0] = x;
}
没有什么花哨。对于集合返回 null 的原因以及我应该如何将指定的x值添加到集合中,我将不胜感激。