在Java中移动数组中的对象?

在Java中移动数组中的对象?,java,arrays,object,move,Java,Arrays,Object,Move,我是Java新手,在数组中移动对象时遇到一些问题;问题是:假设在m[i][j]中有一个X对象,在m[i][j+1]中有一个Y对象。我想要的是将X移动到m[I][j+1],在该位置显示X,然后将其移动到m[I][j+2],并使Y对象显示回其原始位置。有什么想法吗 编辑: 步骤1应该显示:X Y_ 步骤2:X_ 步骤3:ux 这是我对你所描述的最好的解释。这是java代码,但它大声说这里有一些不好的想法。出于某种原因,我们有对象数组的数组,如果原因不是很好,我们可能应该重新考虑编写一些类或使用

我是Java新手,在数组中移动对象时遇到一些问题;问题是:假设在
m[i][j]
中有一个
X
对象,在
m[i][j+1]
中有一个Y对象。我想要的是将
X
移动到
m[I][j+1]
,在该位置显示
X
,然后将其移动到
m[I][j+2]
,并使
Y
对象显示回其原始位置。有什么想法吗

编辑:
  • 步骤1应该显示:X Y_
  • 步骤2:X_
  • 步骤3:ux


这是我对你所描述的最好的解释。这是java代码,但它大声说这里有一些不好的想法。出于某种原因,我们有对象数组的数组,如果原因不是很好,我们可能应该重新考虑编写一些类或使用列表/集合之类的东西。你到底想干什么?我们为什么要摆弄阵列?

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


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

您所说的“在该位置显示X”是什么意思?每次移动后是否需要打印阵列?第一次移动后,Y会去哪里?你应该为X创建一个临时存储,然后将Y移动到X的位置,然后将X移动到Y的旧位置。@Louis Wasserman我尝试过将X的m[i][j]移动到m[i][j+1],并在X的首字母m[i][j]中创建一个新的“X”,但我似乎不知道如何知道在新X的位置上有一个Y。@Vash我如何创建一个临时存储?你的意思是像一个新的变量?新的变量应该做的诀窍。同时,考虑你最近在课堂上学到的东西,根据你的老师想要建立在先前的概念上。如果您关注的是字符串操作,那么您可能需要存储“XY”并仅显示X。如果是位掩蔽,那么您可以采用这种方法。
    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)