Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.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数组和其他数组中的输入结果_Java - Fatal编程技术网

比较相同的Java数组和其他数组中的输入结果

比较相同的Java数组和其他数组中的输入结果,java,Java,我正在尝试比较数组a的元素。如果是相同的,我在数组b中为此索引键入“1”。否则我键入“0”: publicstaticvoid theSameValues(){ int[]a=新的int[]{1,2,1,3,2}; int[]b=新的int[5]; for(int i=0;i

我正在尝试比较数组a的元素。如果是相同的,我在数组b中为此索引键入“1”。否则我键入“0”:

publicstaticvoid theSameValues(){
int[]a=新的int[]{1,2,1,3,2};
int[]b=新的int[5];
for(int i=0;i
结果错误:[1,1,1,1,0]

请帮助理解和解决问题。

您可以尝试以下方法:

 public static void theSameValues(){

    int[] a = new int[]{1, 2, 1, 3, 2};

   //you can initialize this by a function
   int[] b = new int[]{0, 0, 0, 0, 0};

   for (int i = 0; i < a.length; i++){
      for (int  j= i +1; j < a.length; j++){
         if (a[i] == a[j]){
            b[j] = 1;
            b[i] = 1;
         }
      }
   }
}
publicstaticvoid theSameValues(){
int[]a=新的int[]{1,2,1,3,2};
//您可以通过函数初始化它
int[]b=新的int[]{0,0,0,0};
for(int i=0;i
你所说的“相同”是什么意思?你的意思是元素不是唯一的吗?你的
b[i]=1;
是无条件的“请为我解决”这句话,可能会分享预期结果并首先澄清文本。你的第二个循环从1开始,而不是从0开始,因此你在比较a[0]和b[1]…@JosefProcházka没有涉及
b
的比较,他们只是避免与以前的元素和当前元素进行比较。你能解释一下你的答案吗?你改变了什么?为什么?数组“b”被初始化为0作为默认值。这意味着最初没有数字是相同的。在for循环中,数组“a”被检查相同的数字,如果数字相同,则将数组“b”的索引更改为1。
 public static void theSameValues(){

    int[] a = new int[]{1, 2, 1, 3, 2};

   //you can initialize this by a function
   int[] b = new int[]{0, 0, 0, 0, 0};

   for (int i = 0; i < a.length; i++){
      for (int  j= i +1; j < a.length; j++){
         if (a[i] == a[j]){
            b[j] = 1;
            b[i] = 1;
         }
      }
   }
}