如何在Java中使用数组支持通用数据结构



我对数据结构有很好的理解,可以很高兴地在c++中实现它们,没有问题;由于泛型实现的限制,我在Java中遇到了一点麻烦。

具体来说,当我试图创建一个由数组支持的数据结构时,我会感到困惑。例如,我知道我不能这样做:

public class HashTable<T> {
    private T[] table;    
    public HashTable() {
        table = new T[10]; //Type param T cannot be instantiated directly.
    }
}

我也知道,如果我用一个对象数组来支持我的泛型数组列表,我将不得不抑制一些"未检查强制转换"的警告,这似乎是不合理的。

在Java中创建基于数组的数据结构的最佳方法是什么?是否有一些技巧可以用一种更简洁的方式来完成它,而不仅仅是创建一个直接的对象数组并处理混乱的强制转换?

不使用原始数组,而是使用ArrayList<T>。它基本上是一个数组的通用包装器,带有一些附加功能。

最新更新