[英]Adding elements to ArrayList in java
import java.util.ArrayList;
public class ArrayTest {
private static ArrayList<String> list = new ArrayList<String>();
public static void printList () {
System.out.println("Printing the list");
for (int i = 0; i < list.size(); i++)
{
if (list.get(i) != null)
System.out.println(i + " => " + list.get(i));
}
}
public static void add(Integer index, String val) {
while(list.size() <= index)
list.add(null);
list.add(index, val);
}
public static void main(String[] args) {
ArrayTest.add(8, "cover");
ArrayTest.printList();
ArrayTest.add(6, "and");
ArrayTest.printList();
}
}
产生以下输出
Printing the list
8 => cover
Printing the list
6 => and
9 => cover
add(Integer index, String val)
函数将适当数量的null添加到列表中,以进行检查以避免任何IndexOutOfBoundsException
异常。 有人可以解释为什么在列表中添加“和”会在列表中进一步“覆盖”位置吗?
因为这是List.add(int index, E element)
方法的实际规范 ,所以:
将指定的元素插入此列表中的指定位置(可选操作)。 将当前在该位置的元素(如果有)和任何后续元素右移(将其索引添加一个)。
关于“为什么”:这样做是为了避免在指定位置覆盖元素。
在Java 9中,有一种简单的方法,行数更少,而无需初始化或add
方法。 使用collection factory
方法:
List<String> list = List.of("first", "second", "third");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.