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();
}
}
производит следующий выводДобавление элементов в ArrayList в Java
Printing the list
8 => cover
Printing the list
6 => and
9 => cover
add(Integer index, String val)
функция добавляет соответствующее количество нулей в список в качестве проверки, чтобы избежать каких-либо исключений IndexOutOfBoundsException
. Может кто-нибудь объяснить, почему добавление «и» в список «закрывает» позицию дальше в списке?
Прочитайте [документацию] (http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html), ArrayList.add (int, element) * вставляет * элемент при определенном индексе, смещение последующих элементов обратно. ArrayList.set (int, element) * устанавливает * элемент в индексе без сдвига. –