自己实现的简单的Vector代码
2009-01-06 11:59
513 查看
package p0106;
public class MyVector {
private Object[] data;
private int incr;
private int count;
public MyVector() {
this(10, 0);
}
public MyVector(int capacity) {
this(capacity, 0);
}
public MyVector(int capacity, int increment) {
data = new Object[capacity];
this.incr = increment;
}
public void add(Object o) {
if (count == data.length) {
Object temp[] = null;
if (incr == 0) {
temp = new Object[data.length * 2];
} else {
temp = new Object[data.length + incr];
}
for (int i = 0; i < data.length; i++) {
temp[i] = data[i];
}
data = temp;
}
data[count] = o;
count++;
}
public int size() {
return count;
}
public int capacity() {
return data.length;
}
public void remove(Object o) {
for (int i = 0; i < count; i++) {
if (data[i].equals(o)) {
remove(i);
break;
}
}
}
public void remove(int index) {
for (int i = index; i < count - 1; i++) {
data[i] = data[i + 1];
}
count--;
}
public Object elementsAt(int index) throws Exception {
if (index >= count || index < 0) {
throw new Exception("index 错误");
}
return data[index];
}
public void trimToSize() {
Object[] temp = new Object[count];
for (int i = 0; i < count; i++) {
temp[i] = data[i];
}
data = temp;
}
public Object firstElement() {
return data[0];
}
public boolean isEmpty() {
return count == 0;
}
public static void main(String[] args) {
MyVector vec = new MyVector(10, 5);
vec.add("ddddd");
vec.add("ddddd");
vec.add("ddddd");
vec.add("ddddd");
vec.trimToSize();
System.out.println(vec.size());
System.out.println(vec.capacity());
}
}
public class MyVector {
private Object[] data;
private int incr;
private int count;
public MyVector() {
this(10, 0);
}
public MyVector(int capacity) {
this(capacity, 0);
}
public MyVector(int capacity, int increment) {
data = new Object[capacity];
this.incr = increment;
}
public void add(Object o) {
if (count == data.length) {
Object temp[] = null;
if (incr == 0) {
temp = new Object[data.length * 2];
} else {
temp = new Object[data.length + incr];
}
for (int i = 0; i < data.length; i++) {
temp[i] = data[i];
}
data = temp;
}
data[count] = o;
count++;
}
public int size() {
return count;
}
public int capacity() {
return data.length;
}
public void remove(Object o) {
for (int i = 0; i < count; i++) {
if (data[i].equals(o)) {
remove(i);
break;
}
}
}
public void remove(int index) {
for (int i = index; i < count - 1; i++) {
data[i] = data[i + 1];
}
count--;
}
public Object elementsAt(int index) throws Exception {
if (index >= count || index < 0) {
throw new Exception("index 错误");
}
return data[index];
}
public void trimToSize() {
Object[] temp = new Object[count];
for (int i = 0; i < count; i++) {
temp[i] = data[i];
}
data = temp;
}
public Object firstElement() {
return data[0];
}
public boolean isEmpty() {
return count == 0;
}
public static void main(String[] args) {
MyVector vec = new MyVector(10, 5);
vec.add("ddddd");
vec.add("ddddd");
vec.add("ddddd");
vec.add("ddddd");
vec.trimToSize();
System.out.println(vec.size());
System.out.println(vec.capacity());
}
}
相关文章推荐
- 用TCP/IP实现自己简单的应用程序协议:其余部分(包括完整代码)
- 也发一个自己实现的android简单文件选择器代码。支持多卡,排序
- JAVA 实现自己的数据库驱动简单代码示例
- 自己动手实现简单的Vector
- C++自己实现一个简单地Vector
- 简单完整的代码,通过这个代码你将对RSA加密算法在Java中的实现方法有一个初步的了解,这个类,你可以直接使用,水平高的,就自己修改完善下代码。
- 关于STL中vector的内存管理与简单代码实现
- 简单缓存的实现,相当牛叉!自己看吧,只有50行代码。
- STL中vector的内存管理与简单代码实现
- 自己实现vector的一些简单功能
- 问题1:java中没有实现这种“byte a = 0xB2 --> String b = “B2””转换的简单实现需要自己实现。 答:自己编写的转换函数,思路将byte的高低4位分开,分别转换为对应的字符然后合成返回的字符串。 java 代码 1.
- 关于STL中vector的内存管理与简单代码实现
- 简单缓存的实现,相当牛叉!自己看吧,只有50行代码。
- Github的简单使用代码托管(建立自己的仓库实现代码的上传与版本管理)
- 编写自己的jQuery插件简单实现代码
- 编写自己的jQuery插件简单实现代码
- html制作简单框架网页二 实现自己的影音驿站 操作步骤及源文件下载 (可播放mp4、avi、mpg、asx、swf各种文件的视频播放代码)
- java中自己实现一个服务端对应多个客户端的简单代码
- 实现自己的脚本语言ngscript之四:代码生成
- 手把手教学–ubuntu安装gogs实现自己的代码管理