这是我的任务:
假设U = {1 ,. 。 。 ,10}。编写一个Java程序,让您输入一对A& A组。 B从键盘,然后计算和打印他们的联合和交集。请记住,A和B的集合必须是U(宇宙)集的子集。
现在我的主要关注点是如何比较我拥有的两个数组中的每个索引。如果索引匹配,那么我需要它是真的,否则如果它们不匹配,我需要它是假的。我只是不知道如何比较两者,所以如果有人能给我一些指导,那就太好了。 (我意识到我的代码中没有任何地方比较两者,我只是不确定从哪里开始)。
这是我的代码:
import java.util.*;
public class sets {
public static void main (String[] args) {
Scanner console = new Scanner(System.in);
//Declare the variables
int [] universe = new int[10];
//Ask the user for the numbers in set A
System.out.print("How many numbers do you want in the first set? ");
int num1 = console.nextInt();
int [] A = new int [num1];
int i = 0;
while (i < num1) {
System.out.print("Please enter an integer 1-10: ");
int numA = console.nextInt();
A[i++] = numA;
}
//Ask the user for the numbers in set B
System.out.print("How many numbers do you want in the second set? ");
int num2 = console.nextInt();
int [] B = new int [num2];
int j = 0;
while (j < num2) {
System.out.print("Please enter an integer 1-10: ");
int numB = console.nextInt();
B[j++] = numB;
}
System.out.println(Arrays.toString(A));
System.out.println(Arrays.toString(B));
}
}
答案 0 :(得分:1)
声明两个方法
private static int[] union(int[] s1, int[] s2)
和
private static int[] intersection(int[] s1, int[] s2)
看看你是否可以生成他们的回报值
来自传入的int[]
值(即集合)。
或者,您可以避免所有麻烦,只需使用
HashSet<Integer>
代替int[]
代表您的身份
集。但是我猜你想要自己做一切就是这样
更好(因为这只是一个练习)。
答案 1 :(得分:0)
免责声明:由于这显然是作业,我本身不会发布任何代码。
您需要做的第一件事是定义您在本练习中使用的3个概念:
set
是一组元素,例如每个元素只出现一次set
A或group
B group
元素
set
A和group
B group
元素
然后你需要定义你需要的基本功能。
set
。现在,看看你到目前为止的情况,问题是你要创建两组A和B,它们不是集合。没有什么可以阻止像[1, 1, 1]
因此,您首先应该通过在添加值之前检查集合的内容来确保每个组仍然是一个集合。它使用前面定义的第一个函数。
A和B都是sets
后,您需要为每个要求的函数找到算法。
union算法非常简单:
十字路口不是很复杂:
这一切应该适合大约20行,30个顶部。