标签:容器 set
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
原文地址:http://blog.csdn.net/xionghui2013/article/details/46482675