设计和实现整型集合类(Set) 成员函数要求如下: 1.添加构造函数完成初始化 2.能添加一个元素,元素不重复 3.能删除一个元素 4.输出所有元素 5.求两个集合对象的交集 6.求两个集合对象的并集 7.求两个集合对象的差集
时间: 2024-02-22 07:58:54 浏览: 73
好的,我可以为你提供一个整型集合类的实现,满足你的要求。
我们可以使用一个数组来存储元素,并且使用一个整型变量来记录集合中元素的个数。为了实现元素不重复,我们可以在添加元素时先检查该元素是否已经存在于集合中,如果不存在则添加,否则不做任何操作。具体代码如下:
```java
public class IntSet {
private int[] elements;
private int size;
public IntSet() {
this.elements = new int[10];
this.size = 0;
}
public void add(int element) {
if (!contains(element)) {
if (size >= elements.length) {
int[] newElements = new int[elements.length * 2];
System.arraycopy(elements, 0, newElements, 0, elements.length);
elements = newElements;
}
elements[size++] = element;
}
}
public void remove(int element) {
for (int i = 0; i < size; i++) {
if (elements[i] == element) {
System.arraycopy(elements, i + 1, elements, i, size - i - 1);
size--;
break;
}
}
}
public void printAll() {
for (int i = 0; i < size; i++) {
System.out.println(elements[i]);
}
}
public boolean contains(int element) {
for (int i = 0; i < size; i++) {
if (elements[i] == element) {
return true;
}
}
return false;
}
public IntSet intersection(IntSet other) {
IntSet result = new IntSet();
for (int i = 0; i < size; i++) {
if (other.contains(elements[i])) {
result.add(elements[i]);
}
}
return result;
}
public IntSet union(IntSet other) {
IntSet result = new IntSet();
for (int i = 0; i < size; i++) {
result.add(elements[i]);
}
for (int i = 0; i < other.size; i++) {
result.add(other.elements[i]);
}
return result;
}
public IntSet difference(IntSet other) {
IntSet result = new IntSet();
for (int i = 0; i < size; i++) {
if (!other.contains(elements[i])) {
result.add(elements[i]);
}
}
return result;
}
}
```
在这个类中,我们提供了 `add` 方法来添加元素,如果元素已经存在于集合中,则不会添加。我们还提供了 `remove` 方法来删除元素,它会遍历数组找到第一个匹配的元素,并将其删除。我们提供了 `printAll` 方法来遍历集合中的所有元素并输出。我们还提供了 `contains` 方法来判断集合中是否包含某个元素。
此外,我们还提供了 `intersection` 方法来求两个集合的交集,它会遍历当前集合中的所有元素,判断它们是否存在于另一个集合中,如果存在则加入到结果集合中。我们还提供了 `union` 方法来求两个集合的并集,它会遍历当前集合和另一个集合中的所有元素,并将它们加入到结果集合中。我们还提供了 `difference` 方法来求两个集合的差集,它会遍历当前集合中的所有元素,判断它们是否存在于另一个集合中,如果不存在则加入到结果集合中。
使用这个类也很简单,只需要创建一个对象,并调用相应的方法即可。例如,下面的代码创建了两个集合,并向其中添加了一些元素,然后求它们的交集、并集和差集:
```java
public static void main(String[] args) {
IntSet set1 = new IntSet();
set1.add(1);
set1.add(2);
set1.add(3);
IntSet set2 = new IntSet();
set2.add(2);
set2.add(3);
set2.add(4);
System.out.println("Intersection:");
IntSet intersection = set1.intersection(set2);
intersection.printAll();
System.out.println("Union:");
IntSet union = set1.union(set2);
union.printAll();
System.out.println("Difference:");
IntSet difference = set1.difference(set2);
difference.printAll();
}
```
输出结果为:
```
Intersection:
2
3
Union:
1
2
3
4
Difference:
1
```
阅读全文