Java 两个阵列的混合

Java 两个阵列的混合,java,arrays,algorithm,Java,Arrays,Algorithm,我需要一些帮助。最近我开始学习编程,遇到了一些问题。任务是:有两个对象数组和步骤数。目标是合并它们,然后在每一步中,如果来自不同阵列的两个对象相遇,则交换它们,但它们各自只朝一个方向移动。我不需要实现,只需要算法方面的帮助 array 1: A,B,C array 2: 1,2,3 (Those two arrays can be larger than 3 objects each and don't have to be same length) merged array: A,B,C,1

我需要一些帮助。最近我开始学习编程,遇到了一些问题。任务是:有两个对象数组和步骤数。目标是合并它们,然后在每一步中,如果来自不同阵列的两个对象相遇,则交换它们,但它们各自只朝一个方向移动。我不需要实现,只需要算法方面的帮助

array 1: A,B,C array 2: 1,2,3 (Those two arrays can be larger than 3 objects each and don't have to be same length) merged array: A,B,C,1,2,3 number of steps:5 数组1:A、B、C 数组2:1,2,3(这两个数组每个可以大于3个对象,并且没有 (长度相同) 合并数组:A、B、C、1、2、3 步骤数:5 步骤1:A,B,1,C,2,3

第二步:A,1,B,2,C,3

步骤3:1,A,2,B,3,C

步骤4:1,2,A,3,B,C

步骤5:1、2、3、A、B、C

我的尝试是:

public void Move(int steps)
    { for (int i = 0; i<steps; i++)
        {for (int j = 0; j<mergedArray.size()-1; j++){
        if (!mergedArray.get(j).getType().equals(mergedArray.get(j+1).getType()))
                { Collections.swap(mergedArray, j, j+1);
                j++;
                }
        }
    }
公共无效移动(整数步)

{for(inti=0;i这不是最快的算法,但应该可以工作。 您有两个循环:

第一:你迭代单元,你达到了多少步,你在这里有一个很好的实现。
第二:在数组中的元素满足要求后,您需要停止此循环中的迭代。使用“继续”。

这不是最快的算法,但应该可以工作。 您有两个循环:

第一:你迭代单元,你达到了多少步,你在这里有一个很好的实现。
第二:在数组中的元素满足要求后,您需要停止此循环中的迭代。使用continue。

我看到的一个问题是for循环将遇到麻烦。您有
for(int j=0;j
,在循环中有
mergedArray.get(j+1)
,所以如果你不小心的话,你会很快找到一个
BoundsException数组。除此之外,看起来很合理,我实现了一个类似的数组,它按它应该的方式分割了内容。

我看到的一个问题是,你的for循环将遇到麻烦。你已经得到了
for(int j=0;j
,在循环中有
mergedArray.get(j+1)
,如果不小心,你会很快找到一个
ArrayOutOfBoundsException
。除此之外,看起来还算合理,我实现了一个类似的方法,并按它应该的方式分割内容