gpt4 book ai didi

java - 如何在数组中添加项目而不从列表中删除任何项目?

转载 作者:行者123 更新时间:2023-12-02 11:53:03 25 4
gpt4 key购买 nike

我有一个数组,我想在该数组的第二个索引处添加一个新元素,但不从列表中删除任何其他项目。

Current array: 
["AA", "BB", "CC", "DD"]

在第二位插入 11 后。

New Array:
["AA", "11", "BB", "CC", "DD"]

这就是我正在做的事情,但它消除了数组中的最后一条记录。

   private void inserItem(int pos, String value) {
String[] result = new String[itemsArray.length];
for(int i = 0; i < pos; i++)
result[i] = itemsArray[i];

result[pos] = value;
for(int i = pos + 1; i < itemsArray.length; i++)
result[i] = itemsArray[i-1];

itemsArray= result;
}

这是它给我的输出;当我使用上述方法 insertItem(1,"11")

 ["AA", "11", "BB", "CC"]

最佳答案

数组一旦创建就无法更改其大小。

您应该使用 LinkedList<String>及其 add(int index, E element)方法:

public void add(int index, E element) Inserts the specified element at the specified position in this list. Shifts the element currently at that position (if any) and any subsequent elements to the right (adds one to their indices).

String[] array = {"AA", "BB", "CC", "DD"};
LinkedList<String> list = new LinkedList<>(Arrays.asList(array));
list.add(1, "11");

请注意,您应该使用 LinkedList,而不是 ArrayList,因为使用 ArrayList 进行带有移位的添加操作成本更高。

要考虑的另一件事是我仅使用数组来初始填充 LinkedList。我并不是建议您每次想要插入项目时都应该这样做。您应该完全停止使用数组,而只使用 LinkedList。

关于java - 如何在数组中添加项目而不从列表中删除任何项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47757358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com