0

私はJavaを初めて使用しますが、配列内でオブジェクトを移動するのに問題があります。問題は次のとおりです。にXオブジェクトがm[i][j]あり、にYオブジェクトがあるとしm[i][j+1]ます。私が欲しいのは、に移動Xし、その位置にm[i][j+1]表示してから、に移動して、オブジェクトを元の位置に戻すことです。何か案は?Xm[i][j+2]Y

編集:

  • ステップ1はこれを示す必要があります:XY _
  • ステップ2:_ X _
  • ステップ3:_ YX
4

2 に答える 2

0

2つのレイヤーを効果的に扱っているように聞こえます...単純な配列操作だけではありません。同じスペースで X が Y の前にある状態を説明しています。

たくさんの選択肢があります。X の配列と Y の配列を持つことができます。要素をループするときに、X が存在するかどうかをテストしてから出力し、存在しない場合は Y 配列にあるものをすべて出力します。X が 1 文字のみの場合、1 つの整数変数で表すこともできます。配列は Y またはアンダースコアのみを保持していると考えてください。ただし、その要素をループしているため、X 番目の要素にいる場合は、Y 配列の要素の代わりに「X」を出力します。

于 2012-04-27T23:56:56.010 に答える
0
    final Object underScoreObjectWhateverThatIs = null;
    final Object o1 = new Integer(1);
    final Object o2 = new Integer(2);
    final Object o3 = new Integer(3);
    final Object o4 = new Integer(4);
    final Object[][] m = new Object[][]{new Object[]{null, o1}, new Object[]{o1, o2, o3, o4}};
    final int i = 1;
    final int j = 1;
    //Test vars set up
    //Going for step 1;
    m[i][j + 2] = underScoreObjectWhateverThatIs;
    //We now have step one
    Object X = m[i][j];
    Object Y = m[i][j + 1];
    m[i][j] = underScoreObjectWhateverThatIs;
    m[i][j + 1] = X;
    //We now have step 2
    m[i][j + 1] = Y;
    m[i][j + 2] = X;
    //We now have step 3
            // (X was o2, and Y was o3 here if that is unclear)

それはあなたが説明していることの私の最良の解釈です。これは Java コードですが、ここで悪い考えが行われていると叫びます。何らかの理由で Object 配列の配列がありますが、その理由があまり良くない場合は、何らかのクラスを作成するか、Lists/Collections などを使用することをおそらく再検討する必要があります。あなたは本当に何をしようとしていますか?なぜ私たちは配列をいじっているのでしょうか?

于 2012-04-27T23:10:10.523 に答える