MySet

/*
做一个对象的容器(模仿Java.util包中的Set),要求:
◇能往里面放任意类型的对象;   add( )
◇能从里面读取对象;                   getAll( )
◇能判断容器中是否已经存在某对象。 Contains( )
◇能返回容器当前所存放对象的个数。 Size( )
◇如果里面有重复的对象则放不进去。
*/
public class MySet {
	private Object[] objs=new Object[0];
	
	/**
	 * 添加一个对象(元素)到当前集合中
	 * @param obj 将要添加到集合中的对象(元素)
	 * @return 若集合中已经存在该被添加对象则返回false,否则返回true
	 */
    public boolean add(Object obj){
    	if(contains(obj)){
    	return false;
    	}
    	
       //程序能运行到这里,说明容器中不包含obj
 	   //把obj添加到容器(数组objs)
 	   //1创建一个新的数组,长度为原来的加1
       Object tempObjs[] = new Object[objs.length+1];
     //2把旧数组中的元素拷到新数组中
       System.arraycopy(objs, 0, tempObjs, 0, objs.length);
       //3把obj添加到新数组中
       tempObjs[objs.length]=obj;
       //4把objs指向新的数组
       objs=tempObjs;
       return true;
    }
    
    public Object[] getAll(){
    	return objs;
    }
    
    public boolean contains(Object obj){
    	   for(Object o:objs){
    		   if(o.equals(obj)){ 
    			   return true;
    		   }
    	   }
    	   return false;
    }
    public int size(){
    	 return objs.length;
    }
}
import java.util.Date;

import org.junit.Test;

public class TestMySet {
		@Test //测试往集合中添加一个新对象(元素)
		public void t1(){
			MySet set = new MySet();
			set.add(100);
			boolean boo = set.add("Java");
			boolean boo2 = set.add("Java");
			System.out.println(boo+","+boo2);
			System.out.println(set.size());
		}
		
		@Test //测试读取集合中的所有元素
		public void t2(){
			MySet set = new MySet();
			set.add(100);
			set.add("Java");
			set.add(new Date());

	        Object objs[] = set.getAll();
	        for(Object obj:objs){
	        	System.out.println(obj);
	        }
		} 
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值