容器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;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值