List
в java – это интерфейс, который предоставляет возможность поддерживать упорядоченную коллекцию. Он содержит основанные на индексах методы для вставки, обновления, удаления и поиска элементов. Он также может иметь повторяющиеся элементы.
Класс ArrayList
– реализация интерфейса List
. Представляет собой автоматически расширяемый массив. ArrayList
может менять свой размер во время исполнения программы
// Создаем новый экземпляр ArrayList
List<String> list = new ArrayList<>();
System.out.println(list); // => []
// Добавляем элементы в список
list.add("1");
list.add(null);
list.add(null);
list.add("2");
list.add("3");
list.add("3");
System.out.println(list); //=> [1, null, null, 2, 3, 3]
list.remove(0);
System.out.println(list); // => [null, null, 2, 3, 3]
list.remove("3");
list.remove("4");
System.out.println(list); // => [null, null, 2, 3]
System.out.println(list.size()); // => 4
List<String> insertedList = new ArrayList<>();
insertedList.add("1");
insertedList.add("2");
insertedList.add("7");
insertedList.add("7");
System.out.println(insertedList); // => [1, 2, 7, 7]
list.addAll(2, insertedList);
System.out.println(list); // => [null, null, 1, 2, 7, 7, 2, 3]
System.out.println(list.indexOf("7")); // => 4
System.out.println(list.get(3)); // => 2
System.out.println(list.isEmpty()); // => false
System.out.println(list.contains("2")); // => true
System.out.println(list.contains("11")); // => false
for (String s: list) {
System.out.println("element of list: " + s);
}
Вывод на экран:
element of list: null
element of list: null
element of list: 1
element of list: 2
element of list: 7
element of list: 7
element of list: 2
element of list: 3
// Создаем новую переменную с типом ArrayList
ArrayList<String> arrayList = (ArrayList<String>) list;
System.out.println(arrayList); // => [null, null, 1, 2, 7, 7, 2, 3]
LinkedList
— еще одна реализация интерфейса List
. Представляет из себя двусвязный список, где каждый элемент структуры содержит ссылки на предыдущий и следующий элементы. По этим ссылкам можно переходить от одного элемента к другому.// Создаем новый экземпляр двусвязного списка
List<Integer> list = new LinkedList<>();
// Добавляем/удаляем элементы
list.add(1);
list.add(2);
list.add(null);
list.add(3);
list.add(4);
list.remove(1);
list.add(null);
System.out.println(list); // => [1, null, 3, 4, null]
System.out.println(list.size()); // => 5
System.out.println(list.get(0)); // => 1
System.out.println(list.indexOf(3)); // => 2
LinkedList<Integer> linkedList = (LinkedList<Integer>) list;
// Получаем, но не удаляем первый элемент списка
System.out.println(linkedList.peek()); // => 1
System.out.println(list); // => [1, null, 3, 4, null]
// Получаем и удаляем первый элемент списка
System.out.println(linkedList.poll()); // => 1
System.out.println(linkedList); // => [null, 3, 4, null]
// Вставляем элемент в начало списка
linkedList.addFirst(3);
System.out.println(linkedList); // => [3, null, 3, 4, null]
for (Integer num: linkedList) {
System.out.println("int: " + num);
}
Вывод на экран:
int: 3
int: null
int: 3
int: 4
int: null
Вам ответят команда поддержки Хекслета или другие студенты.
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
Наши выпускники работают в компаниях:
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
Зарегистрируйтесь или войдите в свой аккаунт