这是不重复的问题 - 我不想使用pre-defined methods
,而是希望实现我自己的基本 O(n ^ 2) 用于查找2个列表中的公共元素的算法。我的程序循环遍历2 arrays
,并将第一个array
中的每个元素与第二个array
中的所有元素进行比较。这一切都运行正常,除了事实上,程序总是以某种方式总是打印一个" 0"。为什么是这样?我arrays
中没有0。
public class ArraySameCase {
public static void main(String[] args)
{
int[] firstArray = new int[5];
firstArray[0] = 1;
firstArray[1] = 2;
firstArray[2] = 7;
firstArray[3] = 9;
int[] secondArray = new int[5];
secondArray[0] = 8;
secondArray[1] = 7;
secondArray[2] = 1;
secondArray[3] = 3;
for(int i=0; i<firstArray.length; i++){
for(int y=0; y<secondArray.length; y++){
if(firstArray[i] == secondArray[y]){
System.out.println(firstArray[i]);
}
}
}
}
}
输出:
1
7
0
答案 0 :(得分:4)
您拥有大小为5的数组,并且只初始化前四个元素。默认情况下,5th为0。
使用以下代码将阵列打印到控制台:
import java.util.Arrays;
public class ArrayPrinter {
public static void main(String[] args)
{
int[] firstArray = new int[5];
firstArray[0] = 1;
firstArray[1] = 2;
firstArray[2] = 7;
firstArray[3] = 9;
int[] secondArray = new int[5];
secondArray[0] = 8;
secondArray[1] = 7;
secondArray[2] = 1;
secondArray[3] = 3;
System.out.println(Arrays.toString(firstArray));
System.out.println(Arrays.toString(secondArray));
}
}
答案 1 :(得分:2)
您定义长度为5的数组,但只添加4个值。因此firstArray[4]
和secondArray[4]
为0。