码迷,mamicode.com
首页 > 其他好文 > 详细

容器Set

时间:2015-06-13 15:41:52      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:容器 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

标签:容器 set

原文地址:http://blog.csdn.net/xionghui2013/article/details/46482675

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!