比较相同的Java数组和其他数组中的输入结果
我正在尝试比较数组a的元素。如果是相同的,我在数组b中为此索引键入“1”。否则我键入“0”:比较相同的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
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;
}
}
}
}