容器Set

来源:互联网 发布:java finalize作用 编辑:程序博客网 时间:2024/05/20 04:48
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;}}

1 0