直到今天,我还以为Java中的ArrayLists和C++中的std::vectors是一样的,但事实证明ArrayLists只能存储对象。(基元是包装的)。我要找的东西是这样的:
class Array {
int i;
type[] array;
Array() {
this.i = 0;
this.array = new array[1];
}
Array(int initialSize) {
this.i = 0;
this.array = new array[initialSize];
}
type get(int index) {
return array[index];
}
void add(type to_add) {
if(array.length == i) {
type[] newArray = new type[array.length * 2];
for(int j = 0; j < array.length; j++) newArray[j] = array[j];
}
array[i++] = to_add;
}
}
"type“是原始数据类型之一。
注意:我不需要存储对象的能力,所以我不想要ArrayList的内存开销。
如果我的假设是错误的,请让我知道:-D
编辑:这不是副本,这是一个关于性能的问题,而不是关于它是否可能的问题。
发布于 2018-01-11 19:06:20
标准(Java )库不提供与使用Java类型的C++ std::vector
clss等效的库。可供选择的有:
ArrayList
这样的标准类,并使用(比如说) Integer
作为类型参数。Trove和类似的东西不是也不能使用Java泛型实现。这是因为Java只允许引用类型用作泛型类的参数。因此,这些Java库实际上被实现为具有集合API的“复制粘贴”代码,这些API在很大程度上不是多态的。
https://stackoverflow.com/questions/48205499
复制相似问题