用Java移动数组中的对象?

时间:2012-04-27 22:12:31

标签: java arrays object move

我是Java的新手,我在使用数组移动对象时遇到了一些麻烦。问题是:假设X中有m[i][j]个对象,m[i][j+1]中有Y对象。我想要的是将X移至m[i][j+1],在该位置显示X,然后将其移至m[i][j+2],并使Y对象显示回来它原来的位置。有任何想法吗?

编辑:

  • 第1步应显示:X Y _
  • 第2步:_ X _
  • 第3步:_ Y X

2 个答案:

答案 0 :(得分: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或其他东西。你真的想做什么?我们为什么要搞乱阵列?

答案 1 :(得分:0)

听起来你有效地处理了两个层......它不仅仅是简单的数组操作。您正在描述一个状态,其中X可以位于同一空间中的Y前面。

你有很多选择。你可以有一个X数组和一个Y数组。当你遍历元素时,你测试X是否存在然后打印它,否则打​​印Y数组中的任何内容。如果X只是一个字符,它甚至可以用一个整数变量表示。将数组视为仅包含Y或下划线,但是当您在其元素中循环时,如果您在第X个元素上,则打印" X"而不是Y数组中的元素。