0

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

编辑:

  • 第 1 步应该显示:XY _
  • 第 2 步:_ X _
  • 第三步:_YX
4

2 回答 2

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代码,但它尖叫着这里有一些不好的想法。出于某种原因,我们有对象数组的数组,如果原因不是很好,我们可能应该重新考虑编写一些类或使用列表/集合或其他东西。你真正想做什么?为什么我们要搞乱数组?

于 2012-04-27T23:10:10.523 回答
0

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

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

于 2012-04-27T23:56:56.010 回答