数组逻辑:我如何安排两个数组编号

时间:2015-06-24 16:51:44

标签: 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

我该怎么办?

2 个答案:

答案 0 :(得分:5)

在这种情况下,您不需要嵌套循环;你需要的只是正确使用模数运算符。

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

这样做的原因是模数运算符非常适合您的问题。您尝试执行的操作需要反复遍历列表(array2)并回绕到开头。模数运算符本质上是一个“包装”运算符;逐步思考,它允许你在每次达到一定数量时回到0(在这种情况下,大小为array2)。

答案 1 :(得分:1)

所以你有两个集合,你想循环遍历较大集合(array1)的每个元素,并为集合的每个元素打印元素,以及set2(array2)的下一个元素。

我使用enhanced for loop,它遍历每个元素,然后modulus有效地将i限制为小于set2的长度。 (如果除以3,则余数必须小于3)

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

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