Set类实现
//用户自定义的MySet类
public class MySet {
private MyVector value = new MyVector();
//添加对象
public void add(Object obj)throws Exception
{
//不允许添加空对象
if(obj==null)
{
return ;
}
//由于Set类不允许添加重复的元素,所有先查找该对象是否已经存在。
if(value.indexOf(obj)<0)
{
value.add(obj);
}
else
{
return;
}
}
//删除对象
public void remove(Object obj)throws Exception
{
value.remove(obj);
}
//是否包含一个对象
public boolean contain(Object obj)throws Exception
{
return value.contain(obj);
}
public int size()
{
return value.size();
}
public Object get(int index)throws Exception
{
return value.get(index);
}
//是否包含另一个集合对象.
public boolean include(Object obj)throws Exception
{
if( obj instanceof MySet)
{
MySet set = (MySet)obj;
int count=0;
while(count<set.size())
{
Object temp = set.get(count);
count++;
if(!contain(temp))
return false;
}
return true;
}
else
{
return false;
}
}
//判断两个集合是否相等
public boolean equals(Object obj)
{
if(obj instanceof MySet)
{
MySet set = (MySet)obj;
try
{
if(include(set)&&set.include(this))
{
return true;
}
else
return false;
}
catch(Exception ex)
{
ex.printStackTrace();
return false;
}
}
else
{
return false;
}
}
//判断集合是否为空
public boolean isEmpty()
{
return value.size()>0;
}
}
public class Test {
public static void main(String[] args)throws Exception {
MySet set1 = new MySet();
set1.add(new Integer(0));
set1.add(new Integer(1));
set1.add(new Integer(2));
MySet set2 = new MySet();
set2.add(new Integer(0));
set2.add(new Integer(1));
set2.add(new Integer(2));
//set2.add(new Integer(3));
//set2.add(new Integer(4));
System.out.println(set1.size());
set1.add(new Integer(2));//不能添加重复元素
System.out.println(set1.size());
set1.add(null);//不能添加空对象
System.out.println(set1.size());
System.out.println(set2.include(set1));
System.out.println(set1.include(set2));
System.out.println(set1.equals(set2));
}
}
Java集合框架介绍
List:有序的,可以重复
Set:无序的,不能重复
Map:键值对的方式储存
Java集合框架应用
编写双色球号码机选生成算法。
双色球投注区分为红球号码区和蓝球号码区,红球号码范围为01~33,蓝球号码范围为01~16。双色球每期从33个红球中开出6个号码,从16个蓝球中开出1个号码作为中奖号码,双色球玩法即是竞猜开奖号码的6个红球号码和1个蓝球号码,顺序不限。
import java.util.Vector;
public class MyLotto {
public static void main(String[] args) {
Vector<Integer> v = new Vector<Integer>();
//初始化红球号码
for(int i=1;i<=33;i++)
{
v.add(i);
}
//随机生成六个红球
for(int i=0;i<6;i++)
{
int len = v.size();
int random = (int)(Math.random()*100)%len;
System.out.println("第"+(i+1)+"个红球号码是:"+v.get(random));
v.remove(random);//删除元素
}
//随机抽取篮球
int num = (int)(Math.random()*100)%16;
System.out.println("蓝球号码是:"+(num+1));
}
}