⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 set.java

📁 集合类
💻 JAVA
字号:
public class Set implements Cloneable
{
	private Elem start;
	private Elem end;
	Set()
	{start=null;end=null;}
	Set(int n)
	{
		int temp=1000;
		for(int i=0;i<n;i++)
		{
			do{
				temp=(int)(Math.random()*30);
			}while(testElem(temp)==false);
			addElem(temp);
		}
	}
	public Elem getStart()
	{return start;}
	public Elem getEnd()
	{return end;}
	void addElem(int elem)
	{
		if(elem!=0)
		{
			Elem newEnd=new Elem();
			newEnd.setE(elem);
			if(start==null)
			{start=newEnd;}
			else {end.setNext(newEnd);}
			end=newEnd;
		}
	}
	public String toString()
	{
		StringBuffer str=new StringBuffer("");
		Elem nextElem=start;
		while(nextElem!=null)
		{
			if(nextElem.getE()<10)
			{str.append("   "+nextElem);}
			else{str.append("  "+nextElem);}
			nextElem=nextElem.getNext();
		}
		return str.toString();
	}
	private int[] findAll()
	{
		int e[]=new int[10];
		Elem nextElem=start;
		for(int i=0;nextElem!=null;i++)
		{
			e[i]=nextElem.getE();
			nextElem=nextElem.getNext();
		}
		return e;
	}
	private boolean testElem(int t)
	{
		boolean r=true;
		int e[]=new int[10];
		e=findAll();
		for(int i=0;i<e.length;i++)
		{
			if(t==e[i])
			{
				r=false;
				break;
			}
		}
		return r;
	}
	public void unite(Set set)
	{
		int e[]=new int[10];
		e=set.findAll();
		for(int i=0;i<e.length;i++)
		{
			if(testElem(e[i])==false)
			{continue;}
			else
			{addElem(e[i]);}
		}
	}
	public void intersection(Set set)
	{
		Set r=new Set();
		Elem e1,e2,tElem;
		int i;
		int[] e=findAll();
		//for(e1=getStart();e1!=null;e1=e1.getNext())
		//{System.out.println(e1);}
		for(e1=set.getStart();e1!=null;e1=e1.getNext())
		{
			for(e2=getStart();e2!=null;e2=e2.getNext())
			{
				if(e1.getE()==e2.getE())
				{r.addElem(e1.getE());}
			}
		}
		for(start=null,end=null,tElem=r.getStart();tElem!=null;tElem=tElem.getNext())
		{addElem(tElem.getE());}
	}
}
/*
	public Object clone() throws CloneNotSupportedException
	{
		Elem s,pre;
		Set line=(Set)super.clone();
		if(start!=null)
		{
			line.start=(Elem)start.clone();
			pre=line.start;
			Elem p=start.getNext();
			while(p!=end)
			{
				s=(Elem)p.clone();
				pre.setNext(s);
				pre=s;
				p=p.getNext();
			}
			if(end!=null)
			{
				line.end=(Elem)end.clone();
				pre.setNext(line.end);
			}
		}
		return line;
	}
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -