定义一个整数集合类integerSet,存储十个20-80之间的数,用数组存储数据
编程实现:
(1)判断类对象s1,s2是否相等,集合相等的条件是所有元素相等
(2)输出两集合对象的交集
(3)输出两集合对象的并集
(4)插入一个元素
(5)删除一个元素
代码实现
package unit4;
public class integerSet
{
int a[];
int b[];
integerSet(int []c,int []d) //带参数的构造函数;
{
this.a=c;
this.b=d;
}
void Equal(int e[],int f[]) //判断两个数组是否相等,并输出交集
{ System.out.print("\n交集为:");
int count = 0;
for(int j=0;j<10;j++)
{
for(int h=0;h<10;h++)
{
if(e[j]==f[h])
{
count++; //统计两个数组中相等的数的个数
System.out.print(e[j]+" ");//把相等的元素拿出来放在交集输出来
}
}
}
if(count==10)//两集合元素完全相等的情况
{
System.out.print("\nS1=S2");
}
else
{
System.out.print("\nS1!=S2");
}
}
void Union(int e[],int f[])//求并集的方法
{ System.out.print("\n并集为:");
int flag=0;
for(int i=0;i<10;i++)
{
System.out.print(e[i]+" ");//输出e数组的元素
}
for(int j = 0;j<10;j++)
{
for(int h = 0;h<10;h++)
{
if(f[j]==e[h])
{
flag++;
}
}
if(flag==0)
{
System.out.print(f[j]+" ");
}
else
{
flag=0;
}
}
}
void Insert(int a,int b[])//将整数插入到集合a中的方法
{
int c[];
c = new int[11];
for(int i=0;i<10;i++)
{
c[i]=b[i];
}
c[10]=a;
System.out.print("\n将整数"+a+"插入到集合a中后的结果为:");
for(int j = 0;j<11;j++)
{
System.out.print(c[j]+" ");
}
}
void Del(int a,int b[])
{
int c[];
int i, j = 0;
c=new int[9];
for(i=0;i<10;i++)
{
if(b[i]==a)
{
j=i;
}
}
for(i=0;i<j;i++)
{
c[i]=b[i];
}
for(i=j;i<c.length;i++)
{
c[i]=b[i+1];
}
System.out.print("\n将元素"+a+"从集合a中移除后的结果为:");
for(i=0;i<9;i++)
{
System.out.print(c[i]+" ");
}
}
public static void main(String args[])
{
int a[]= {20,21,58,65,45,44,32,54,66,77};
int b[]= {33,36,20,21,52,65,45,29,79,61};
System.out.print("集合a:");
for(int i=0;i<10;i++)
{
System.out.print(a[i]+" ");
}
System.out.print("\n集合b:");
for(int i=0;i<10;i++)
{
System.out.print(b[i]+" ");
}
integerSet asd=new integerSet (a,b);
asd.Equal(a, b);
asd.Union(a, b);
asd.Insert(99,a);
asd.Del(66,a);
}
}