public class MySet {
private int capacity = 0; //容器的容量
private int size = 0; //容器内的对象个数
private Object[] objs = new Object[0]; //容器数组
public boolean add(Object obj) {
return add(obj,false);
}
public boolean addFirst(Object obj) { //是否需要把放进来的对象放在第一个位置
return add(obj,true);
}
public boolean add(Object obj,boolean isFirst) {
int pos = isFirst? 1:0 ;
if (contains(obj)) { //如果容器里面有该对象,则不能把他放到容器中
return false;
}
if (size == capacity) {
capacity = (capacity + 1) * 2; //容器扩大
}
//使用动态数组数组
Object t[] = new Object[capacity];
System.arraycopy(objs, 0, t, pos, size);
objs=t;
if(isFirst){
objs[0] = obj; //把放进来的对象放在第一位
}else{
objs[size] = obj; //把放进来的对象放在最后一位
}
size++; //容器中对象个数加一
return true;
}
//遍历容器判断是否已经存在放进来的对象
public boolean contains(Object obj) {
for (int i = 0; i < size; i++) {
Object o = objs[i];
if (o.equals(obj)) {
return true;
}
}
return false;
}
//获取容器中所有的对象
public Object[] getAll() {
if (size == capacity) {
return objs;
} else {
Object[] tempObjs = new Object[size];
System.arraycopy(objs, 0, tempObjs, 0, size);
return tempObjs;
}
}
//获取容器中对象个数
public int size() {
return size;
}
//获取容器的容量
public int getCapacity() {
return capacity;
}
}
容器Set
最新推荐文章于 2024-05-09 21:51:41 发布