【问题标题】:How can i place an element in an array on a given position?如何将元素放在给定位置的数组中?
【发布时间】:2015-07-19 15:31:30
【问题描述】:

我有以下问题。

int[] ar={4,6,7,8}

现在我想添加一个元素,所以我得到了

ar={4,6,9,7,8}

我希望能够在我想要的位置添加给定元素 (9),在这种情况下索引 2。如何?

【问题讨论】:

  • 一个数组的长度是final。这意味着如果要添加或删除元素,则需要创建一个新数组并将所有内容与新元素一起复制。
  • 好的,所以没有简单的方法。我必须使用 Arraylist。但是如何将我的 ar 转换为 arrylist。?
  • 现有 API 可以将数组转换为列表。像Arrays.asList(),但它们会给出固定大小的列表,这意味着你也不能添加或删除它们。因此,您需要使用new ArrayList(Arrays.asList(arr)) 将列表复制到一个新列表中。或者您可以使用System.arrayCopy() 并从原始数组复制到新数组。

标签: java arrays add element


【解决方案1】:

在 Java 中,数组的大小不能更改。相反,您可以使用List:

List<Integer> numList = new ArrayList<Integer>();
numList.add(4);
numList.add(6);
numList.add(7);
numList.add(8);

然后您可以使用numList.add(int index, E element); 在特定位置插入值。

numList.add(2, 9);
//numList = {4, 6, 9, 7, 8};

有关更多信息,您可能需要查看this tutorial

【讨论】:

  • 使用List 然后...然后怎么办? (你或许应该说使用List.insert)。
  • @AndyTurner 我添加了指向 Javadoc 和 Oracle 教程的链接。
  • @Turing85 但您没有提到在 javadoc 或教程中要查找的内容。明确地说List.insert 是相关方法会是一个更好的答案。
  • 没错,只是给个教程,别剪了。那些很大,我不知道去哪里找:-(还是谢谢。
  • @mr_ecko 有一个名为“列表界面”的小节,它解释了关于 Lists 的最基本内容。我是谁来决定什么对你“重要”,什么不重要?因此,我想提供更多一般信息,让您决定选择什么。子页面可能有五个打印页长。
【解决方案2】:

Java 数组是固定长度的,因此您需要创建另一个数组来存储额外的元素。

int[] ar = { 4, 6, 7, 8 };
int[] tmp = new int[ar.length + 1];
int pos = 2;
for (int i = 0; i < pos; i++) {
    tmp[i] = ar[i];
}
for (int i = pos + 1; i <= ar.length; i++) {
    tmp[i] = ar[i - 1];
}
tmp[pos] = 9;
System.out.println(Arrays.toString(tmp));

输出是(按要求)

[4, 6, 9, 7, 8]

【讨论】:

  • 仅用于文档:当您需要在生产代码中复制数组时,请使用 System.arraycopy(...)(我很确定 Elliott Frisch 知道这一点)。
【解决方案3】:

How to add new elements to an array?

add an element to int [] array in java

请注意,ArrayList 还有一个 add 方法,可让您指定索引和要添加的元素void add(int index, E element)

【讨论】:

    【解决方案4】:

    最简单的方法是使用ArrayList&lt;Integer&gt;add(int, T) 方法。

    List<Integer> numList = new ArrayList<Integer>();
    numList.add(4);
    numList.add(6);
    
    // Now, we will insert the number
    numList.add(2, 9);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-25
      • 1970-01-01
      • 2011-03-22
      相关资源
      最近更新 更多