java添加到泛型集合
我有一个泛型类,它应该创建一个数组中存储的可比较数据集合。我很不清楚可比和仿制药的工作方式
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;
}
}
首先,什么样的集合是集合(数组、列表等)。它从来没有显式地实例化为newarray[],所以我很好奇这应该如何创建一个数组
其次,需要有一个方法插入一个指定的值(出于测试目的,我一直在使用'5')并将其分配给集合[0]。但是,当我返回集合[0]时,它返回为null。以下是插入方法:
public void insert(T x)
{
collection[0] = x;
}
没什么特别的。我非常希望能够澄清为什么集合返回null,以及如何将指定的x值添加到集合中
# 1 楼答案
通常的惯例是:
你的是C兼容语法
集合是任何类型集合的接口。实现类有HashTree、ArrayList等
这与其他一些语言不同,java并没有像JavaScript这样的几个“集合”类,而是有几个接口,它们有一个可供选择的实现。因此,对于一个映射,可以选择HashMap、TreeMap、LinkedHashMap等等。因此,在API中,您放置了接口,但实现使用了某些实现的技术优势
例如,遍历树映射是按键排序的。LinkedHashMap的遍历按插入顺序排序
关于null的信息一定是编程错误
# 2 楼答案
除了什么是集合的问题(请在API中查找),您发布的代码工作正常。用一些实现Compariable(如Integer或String)的内置类进行测试。。。您可以发布调用insert()方法的代码吗