[英]Adding elements dynamically to arraylist
I have below scenario: 我有以下情况:
ArrayList<String> list = new ArrayList<String>();
list.add("John");
list.add("is");
list.add("good");
list.add("boy");
int count = 2;
if (list.get(count-1)!= null)
{
list.set(count+1, "mike");
list.set(count+1,"Tysosn");
}
expected output: ("john","is","good","mike","Tyson","boy")
预期输出:(
("john","is","good","mike","Tyson","boy")
But i am getting array out of bond exception. 但是我越来越摆脱绑定异常。
Can some one please suggest. 可以请一个建议。
Use java.util.List#set(int index, E element) to replace the element at any position 使用java.util.List#set(int index,E element)在任意位置替换元素
Use java.util.List#add(int index, E element) to add the element to any position. 使用java.util.List#add(int index,E element)将元素添加到任何位置。
You can use ArrayList.add(int index, E element) method to achieve desired result like this: 您可以使用ArrayList.add(int index,E element)方法来实现所需的结果,如下所示:
import org.junit.Test;
import java.util.ArrayList;
public class ArrayListInsertTest {
@Test
public void testWithArrayList() throws Exception {
ArrayList<String> list = new ArrayList<String>();
list.add("John");
list.add("is");
list.add("good");
list.add("boy");
list.add(3, "mike");
list.add(4, "Tyson");
System.out.println(list);
}
}
Note from documentation of ArrayList: ArrayList文档中的注释:
/**
* 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).
*
* @param index index at which the specified element is to be inserted
* @param element element to be inserted
* @throws IndexOutOfBoundsException {@inheritDoc}
*/
public void add(int index, E element) {
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.