-2

你好,我有ArrayList<String>一些字符串。我想在特定索引处插入一个字符串,而不会丢失该索引上的字符串。我知道如何使用list.add(index, string),但它将索引处的字符串替换为新字符串。

例如我有这个 ArrayList:

index 0 => Orange
index 1 => Melon
index 2 => Apple
index 3 => Strawberry
index 4 => Pear
index 5 => Banana

现在我想将Cherry添加到索引 2,所以结果应该是:

index 0 => Orange
index 1 => Melon
index 2 => Cherry 
index 3 => Apple
index 4 => Strawberry
index 5 => Pear
index 6 => Banana

有没有一种简单的方法可以做到这一点,因为它让我头疼。

4

4 回答 4

5

参考:ArrayList.add(index, element)

 void add(int index, E element)

在此列表中的指定位置插入指定元素。将当前位于该位置的元素(如果有)和任何后续元素向右移动(将其索引加一)。

应该也可以在android上运行...

于 2012-06-04T05:46:00.293 回答
3

add(int index, E element)效果很好:

List<String> list = new ArrayList<String>(Arrays.asList(
                               "Orange", "Melon", "Apple",
                               "Strawberry", "Pear", "Banana"));
System.out.println(list);
list.add(2, "Cherry");
System.out.println(list);

输出:

[Orange, Melon, Apple, Strawberry, Pear, Banana]
[Orange, Melon, Cherry, Apple, Strawberry, Pear, Banana]
于 2012-06-04T05:47:32.510 回答
1

由于您需要附加到现有索引,因此您需要像这样 -

list.add(index, string + list.remove(index));

list.remove(index) 将返回索引处的元素并将其删除。

于 2012-06-04T05:48:33.400 回答
0

请参阅:http: //developer.android.com/reference/java/util/ArrayList.html

void add(int index, E object)

将指定对象插入到此 ArrayList 的指定位置。该对象被插入到指定位置的任何先前元素之前。如果位置等于此 ArrayList 的大小,则将对象添加到末尾。

参数:

index:插入对象的索引。

object:要添加的对象。

投掷

位置 < 0 时的 IndexOutOfBoundsException || > 尺寸()

于 2012-06-04T05:53:44.803 回答