【发布时间】:2019-09-30 03:48:07
【问题描述】:
我创建了自己的数据结构,其功能类似于 ArrayDeque 并扩展了 AbstractList。它的重点是保存其他数据结构,但不允许具有超过指定数量元素的结构。
例如(我的构造函数):
public MyD(Class<T> t, int limit)
{
}
其中 limit 决定了每个数据结构允许添加到 ArrayDeque 的元素数量。
我的问题是,因为我使用的是泛型,所以从技术上讲,我当时不知道我正在使用哪种类型的数据结构。
public void add(int i, T structure) {}
结构可以是任何东西,从数组到 ArrayList,再到队列等。
我的问题:如果我知道它总是某种形式的数据结构,有没有办法获取一个通用值并对其进行通用转换以获得其中的元素数量。
我尝试将它转换为一个简单的数组 [],但如果传递一个 List,它将破坏功能。
@SuppressWarnings({"unchecked"})
T[] array = (T[])x;
if(array.length > b) { return; }
【问题讨论】:
-
如果添加 2 个数组,一个有 3 个元素,接下来有 4 个元素...你认为 MyD 的大小是 7 吗?
-
@DariusX。不,MyD 的大小为 2。MyD 的元素大小分别为 3 和 4。
标签: java generics data-structures collections