Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何比较2个数组中的每个整数_Java_Arrays - Fatal编程技术网

Java 如何比较2个数组中的每个整数

Java 如何比较2个数组中的每个整数,java,arrays,Java,Arrays,这是我的任务: 假设U={1,…,10}。编写一个Java程序,让您从键盘输入一对集合a和B,然后计算并打印它们的并集和交集。请记住,A和B的集合必须是U(宇宙)集合的子集 现在我主要关心的是如何比较我拥有的两个数组中的每个索引。如果索引匹配,那么我需要它为真,否则如果它们不匹配,我需要它为假。我只是不知道如何比较两者,所以如果有人能给我一些指导,那就太好了。(我意识到我的代码中没有任何地方比较这两者,我只是不确定从哪里开始) 这是我的密码: import java.util.*; public

这是我的任务:

假设U={1,…,10}。编写一个Java程序,让您从键盘输入一对集合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));
   }
}
import java.util.*;
公共类集合{
公共静态void main(字符串[]args){
扫描仪控制台=新扫描仪(System.in);
//声明变量
int[]宇宙=新int[10];
//向用户询问集合A中的数字
System.out.print(“您希望第一组中有多少个数字?”);
int num1=console.nextInt();
int[]A=新的int[num1];
int i=0;
而(i
声明两种方法

私有静态int[]联合(int[]s1,int[]s2)

专用静态int[]交叉口(int[]s1,int[]s2)

查看是否可以生成它们的返回值
从传入的
int[]
值(即集合)

或者,您可以避免所有的麻烦,只需使用
HashSet
而不是
int[]
来表示您的
设置。但我想你想自己做一切事情,这是

更好(因为这只是一个练习)。

免责声明:因为这显然是一个家庭作业,所以我不会发布任何代码本身

您需要做的第一件事是定义本练习中使用的3个概念:

  • 集合是一组元素,例如每个元素只存在一次
  • 交叉点是
    a或
    B中元素的
    集合
  • 联合是
    a和
    B中存在的元素的
    集合
然后你需要定义你需要的基本功能

  • 说明集合a中是否存在元素E
  • 将元素添加到
    集合
现在,看看目前为止的情况,问题是您正在创建两个组A和B,它们不是集合。没有什么能阻止像这样的团队
[1,1,1]

因此,您的第一项工作应该是确保每个组仍然是一个集合,方法是在添加值之前检查集合的内容。它使用前面定义的第一个函数

一旦A和B都是
集合
,您就需要为要求的每个函数找到一个算法

union算法非常简单:

  • 循环要添加到联合中的每个组的元素,如果该元素不在集合中,请添加它
交叉口不是很复杂:

  • 循环要添加到并集的每个组的元素,如果该元素不在集合中,并且存在于所有相交的组中,请添加它

所有这些都应该适合大约20行,30个顶部。

为什么要使用阵列?集合。集合在你的情况下更合适。这正是我的教授想要使用的。添加一个函数
布尔isIn(int[]s,int value)
,可能应该使用它。我很感激,就像我说的,我只是在寻求指导,而不是答案。因为仅仅得到答案是没有帮助的。我会仔细看看你说的话,然后试着计算一下。非常感谢。