Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.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_Arrays_Logic_Core - Fatal编程技术网

Java 数组逻辑:如何排列两个数组号

Java 数组逻辑:如何排列两个数组号,java,arrays,logic,core,Java,Arrays,Logic,Core,我有两个阵列: int-array1[]={1,2,3,4,5,6,7}[此阵列可能会增长到大量] int-array2[]={1,2,3}[最多可包含30个元素] array1应该是父循环,并且将具有比array2更多的元素。例如,我必须安排如下: 预期结果: 1-1 2-2 3-3 4-1 5-2 6-3 7-1 我怎样才能继续 因此您有两个集合,您希望循环遍历较大集合(array1)的每个元素,并为集合中的每个元素打印元素,以及集合2(array2)的下一个元素 我使用了一个,它在每个元素

我有两个阵列:

int-array1[]={1,2,3,4,5,6,7}[此阵列可能会增长到大量]

int-array2[]={1,2,3}[最多可包含30个元素]

array1应该是父循环,并且将具有比array2更多的元素。例如,我必须安排如下:

预期结果:
1-1
2-2
3-3
4-1
5-2
6-3
7-1


我怎样才能继续

因此您有两个集合,您希望循环遍历较大集合(array1)的每个元素,并为集合中的每个元素打印元素,以及集合2(array2)的下一个元素

我使用了一个,它在每个元素上循环,然后witch有效地限制
I
小于set2的长度。(如果除以3,则余数必须小于3)

这允许我们使用
i++
将一个元素添加到
i
,并确保它将始终循环回到第一个元素,就好像值在一个元素上一样


在这种情况下,不需要嵌套循环;你所需要的就是正确使用模算子

for (int i = 0; i < array1.length; i++) {
  System.out.println(array1[i] + "-" + array2[i % array2.length]);
}
for(int i=0;i

这样做的原因是模运算符很好地映射到您的问题。您尝试执行的操作需要重复遍历列表(
array2
),并返回到开头。模算子本质上是一个“包裹”算子;以增量方式思考,每次达到某个数字(在本例中为
array2
)时,它允许您返回到0。

@Trobbins这比“嵌套循环”稍微复杂一点,但在我看来,它也不是一个真正合适的SO问题。这是不雅观的(因此容易出错)因为它既需要增强的
for
循环的内部索引,也需要您的手册
i
索引。是的,我本来打算做一些与您更接近的事情,但我记不起java是如何处理模数的。您已经正确地回答了这个问题!你已经解决了桑塔努的家庭作业。也许你应该解释一下为什么会这样。那我就投赞成票而不是反对票。你回答对了!你已经解决了桑塔努的家庭作业。也许你应该解释一下为什么会这样。然后我会投赞成票而不是反对票。抱歉。我会用解释更新答案。嗯,所以我会编辑我的答案,使之与更新后的问题更接近,然后它会被否决吗?StackOverflow,你真是一只好奇的野兽。这里也一样,RedRobo,尽管你的比我的好
for (int i = 0; i < array1.length; i++) {
  System.out.println(array1[i] + "-" + array2[i % array2.length]);
}