java数据结构(一) 数组array

数组最好写得支持泛型
public class Array {

       #T是自己自定义的一个类型
          }

java不支持直接new一个泛型,必须先new一个Object,然后前面进行类型转换
data = (E[]) new Object[capacity]

动态数组:扩容部分
if size == length :
resize(2*data.length);

private void resize(int newcapacity) {

E[] newData = (E[]) new Object[newcapacity];
for(int i=0;i

复杂度震荡问题:本来removelast,和addlast操作,均摊的时间复杂度是O(n),但是如果操作到了需要扩容或缩容的元素,频繁的进行,removelast,然后又addlast,这样一直是O(n)
出现这样问题的原因呢:我们添加和删除时候的扩容太激进了,(too eager),应该元素个数变成总容量1/4的时候,我们只缩容到容量的一半,而不是过于激进,直接缩容到1/4

你可能感兴趣的:(数据结构,java)