Java ArrayList 在特定索引处替换

Posted

技术标签:

【中文标题】Java ArrayList 在特定索引处替换【英文标题】:Java ArrayList replace at specific index 【发布时间】:2011-11-19 03:32:25 【问题描述】:

我需要有关此 java 的帮助。我创建了一个灯泡的 ArrayList,我试图用另一个灯泡替换特定索引处的灯泡。那么对于以下标题,我该如何进行呢?

public void replaceBulb(int index, Bulbs theBulb) 


【问题讨论】:

对于它的价值,我正在查看“替换”、“放置”或“插入”的列表界面。我没想过要找布景。 @GuiSim 列表界面并不长,5分钟就能一口气读完…… 我用的是Eclipse的自动补全,没看界面。 【参考方案1】:

您可以使用ArrayList的set方法替换特定位置的项目,如下所示:

list.set( your_index, your_item );

但是元素应该出现在你在 set() 方法中传递的索引处,否则它会抛出异常。

您也可以查看 oracle doc here

【讨论】:

@vaxquis 好的先生,请您编写 java 8 并发布它。我们在这里使用它。 ;)。在 SO 中,答案应始终根据问题,因此请先阅读问题。如果它返回以前的值有什么问题,如果你想要那个值那么你可以使用 else 离开它。它正在替换旧值,就是这样。 @vaxquis 你以前看过我的评论吗?明确提及的答案应始终根据问题。提出问题的人提到他想替换元素,这意味着他有一个包含元素的数组列表。现在清除先生??? @vaxquis 你考虑的事情,新手都会知道,所以这些问题没有任何意义。我仍然编辑让你开心:) 作为新手意味着有人不知道如何正确编码。提供无效代码总是错误的,而且没有任何借口,因为它可以而且通常会给初学者带来困惑。提供正确且自包含的代码示例是 *** 的意义所在。感谢您对答案的改进。【参考方案2】:

让我们将数组列表设为ArrayList,并将新值设为value 您需要做的就是将参数传递给.set 方法。 ArrayList.set(index,value)

前-

ArrayList.set(10,"new value or object")

【讨论】:

【参考方案3】:

我们可以使用 ArrayList Set() 方法替换数组列表中的元素。下面是一个示例。

创建数组列表

 ArrayList<String> arr = new ArrayList<String>();
 arr.add("c");
 arr.add("php");
 arr.add("html");
 arr.add("java");

现在在索引 2 上复制元素

 arr.set(2,"mysql");
 System.out.println("after replace arrayList is = " + arr);

输出:

 after replace arrayList is = [c, php, Mysql, java]

参考:

Replace element in ArrayList

【讨论】:

【参考方案4】:

查看List interface中的set(int index, E element)方法

【讨论】:

你是对的。但你可能会考虑编辑它,因为你的回答导致 set() 方法是静态方法,不是吗? @androidKiller 它是静态的 ArrayList.set(); 但是当你在自己的列表中调用它时,它不是:myArrayList.set(int, E); 这个方法的问题是,如果arrayList没有被初始化,它会抛出arrayOutOfBoundException。我想在添加时将一个元素放在正确的索引处,不确定是否有办法做到这一点。 @Bionix1441 即使列表已经初始化,仍然可以尝试为不存在的索引设置值。所以你只需要确保你的索引是有效的。【参考方案5】:

使用set() 方法:see doc

arraylist.set(index,newvalue);

【讨论】:

【参考方案6】:
public void setItem(List<Item> dataEntity, Item item) 
    int itemIndex = dataEntity.indexOf(item);
    if (itemIndex != -1) 
        dataEntity.set(itemIndex, item);
    

【讨论】:

这只有在新项目与旧项目在 equals() 方法方面相等时才有效,对吧? @spikemanuk,这取决于 'Item' 中 'equals()' 方法的实现。如果相等性仅取决于 'Item' 的 'id',则此代码可用于将 'Item:id=1, name=London 替换为 'Item:id=1, name=Paris【参考方案7】:

使用ArrayList.set

【讨论】:

以上是关于Java ArrayList 在特定索引处替换的主要内容,如果未能解决你的问题,请参考以下文章

ArrayList - 如何检查索引是不是存在?

如何替换python列表特定索引处的值?

在索引处添加到 ArrayList 时出现 IndexOutOfBoundsException

从ViewPager android替换片段

Kotlin 在多个索引处将 Arraylist 拆分为多个部分

如何在java中的每个arraylist中创建具有不同类型对象的arraylist数组?