模拟动态数组的实现
public class demo01
{
Object
[] elementData
= new Object
[10];
int size
= 0;
public
void add(Object obj
) {
ensurecapcity(size
+ 1);
elementData
[size
++] = obj
;
}
public
void ensurecapcity(int capcity
) {
if (capcity
< elementData
.length
) {
return;
}
Object
[] newElementData
= new Object
[capcity
* 2];
System
.arraycopy(elementData
, 0, newElementData
, 0, capcity
);
elementData
= newElementData
;
}
public
void checkIndex(int index
) {
if (index
< 0 || index
>= size
) {
throw new
IllegalArgumentException("索引号不合法:" + index
);
}
}
public Object
get(int index
) {
checkIndex(index
);
return elementData
[index
];
}
public Object
remove(int index
) {
checkIndex(index
);
Object obj
= elementData
[index
];
System
.arraycopy(elementData
, index
+ 1, elementData
, index
, size
- index
- 1);
elementData
[--size
] = null
;
return obj
;
}
public
void clear() {
for (int i
= 0; i
<= size
; i
++) {
elementData
[i
] = null
;
}
size
= 0;
}
public
int size() {
return size
;
}
}
###测试
import java
.util
.Vector
;
public class demo01Test {
public static void main(String
[] args
) {
demo01 a
=new demo01();
a
.add(12);
a
.add(23);
a
.add(32);
System
.out
.println("元素个数:"+a
.size());
System
.out
.println("移除索引号为1的元素:"+a
.remove(1));
System
.out
.println("输出所有的元素:");
for(int i
=0;i
<a
.size();i
++) {
System
.out
.println(a
.get(i
));
}
yc
.clear();
System
.out
.println("元素个数:"+a
.size());
}
}
转载请注明原文地址: https://lol.8miu.com/read-8110.html