Java根据元素编号重新排列数组

康纳·鲁尔(Conner Ruhl):

这是我的数组:

int[] myArray = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

假设我想将myArray [3](可以是任何元素)和myArray [6](与该元素相同)移动到数组的前面,同时重新排列后面,我该怎么做?例:

这个:

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

变成这个:

{3, 6, 0, 1, 2, 4, 5, 7, 8, 9}
乔恩·斯基特(Jon Skeet):

要将索引x移到最前面,您需要:

  • 记住索引的内容 x
  • 将所有内容复制0x - 1一个索引,例如System.arrayCopy
  • 将index处的值设置为0您在第一步中记住的值

例如:

public void moveToHead(int[] values, int index)
{
    // TODO: Argument validation
    int value = values[index];
    System.arraycopy(values, 0, values, 1, index - 1);
    values[0] = value;
}

请注意,可以正确System.arraycopy处理复制:

如果src和dest参数引用同一数组对象,则执行复制,就好像先将srcPos到srcPos + length-1位置上的分量复制到具有长度分量的临时数组,然后将临时数组的内容通过目标数组的destPos + length-1复制到位置destPos。

您最初的示例提到了两个元素-虽然您可以提前知道这两个元素而更有效地完成所有这些工作,但是将其建模为两个moveToHead调用将非常容易得多您需要注意顺序-例如,如果您想6先将索引移到头部,则需要考虑索引的第一步,而不是索引3,然后再移动索引4。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

来自分类Dev

JavaScript:根据与x的绝对差重新排列数组元素

来自分类Dev

在cmd中重新排列数组元素

来自分类Dev

根据数字顺序重新排列数组元素,并以数组id表示

来自分类Java

用Java重新排列数组

来自分类Dev

根据嵌套数组重新排列对象数组

来自分类Dev

根据文本内容重新排列DOM元素

来自分类Dev

根据给定的标准重新排列DOM元素

来自分类Dev

按数组元素重新排列二维数组

来自分类Dev

根据JSON数组重新排列HTML表格数据

来自分类Dev

根据公共键/值对重新排列对象数组

来自分类Dev

根据值重新排列数组数据并更新键名称

来自分类Dev

根据每个对象的ID重新排列数组

来自分类Dev

重新排列numpy数组

来自分类Dev

重新排列JavaScript数组

来自分类Java

Java中的高级数组排序/重新排列

来自分类Dev

PHP根据id重新排列数据

来自分类Dev

根据窗口宽度重新排列链

来自分类Dev

重新排列dom中的html元素

来自分类Dev

重新排列Erlang中的元素

来自分类Dev

防止Slickgrid重新排列DOM元素

来自分类Dev

使用JavaScript重新排列元素

来自分类Dev

重新排列列表中的元素

来自分类Dev

重新排列数组索引雄辩的Laravel

来自分类Dev

重新排列NumPy数组中的值

来自分类Dev

在Python中重新排列数组

来自分类Dev

排序和重新排列(不同的)数组

来自分类Dev

重新排列Python argparse参数组

来自分类Dev

AngularJS $ scope数组对象重新排列

来自分类Dev

在React JS中重新排列数组

TOP 榜单

热门标签

归档