Класс LinkedList

Последнее обновление: 24.04.2018

Обобщенный класс LinkedList<E> представляет структуру данных в виде связанного списка. Он наследуется от класса AbstractSequentialList и реализует интерфейсы List, Dequeue и Queue. То есть он соединяет функциональность работы со списком и фукциональность очереди.

Класс LinkedList имеет следующие конструкторы:

  • LinkedList(): создает пустой список

  • LinkedList(Collection<? extends E> col): создает список, в который добавляет все элементы коллекции col

LinkedList содержит все те методы, которые определены в интерфейсах List, Queue, Deque. Некоторые из них:

  • addFirst() / offerFirst(): добавляет элемент в начало списка

  • addLast() / offerLast(): добавляет элемент в конец списка

  • removeFirst() / pollFirst(): удаляет первый элемент из начала списка

  • removeLast() / pollLast(): удаляет последний элемент из конца списка

  • getFirst() / peekFirst(): получает первый элемент

  • getLast() / peekLast(): получает последний элемент

Рассмотрим применение связанного списка:

import java.util.LinkedList;

public class Program{
     
	public static void main(String[] args) {
         
        LinkedList<String> states = new LinkedList<String>();
         
        // добавим в список ряд элементов
        states.add("Germany");
        states.add("France");
        states.addLast("Great Britain"); // добавляем на последнее место
        states.addFirst("Spain"); // добавляем на первое место
        states.add(1, "Italy"); // добавляем элемент по индексу 1
       
        System.out.printf("List has %d elements \n", states.size());
        System.out.println(states.get(1));
        states.set(1, "Portugal");
        for(String state : states){
         
            System.out.println(state);
        }
        // проверка на наличие элемента в списке
        if(states.contains("Germany")){
         
            System.out.println("List contains Germany");
        }
         
        states.remove("Germany");
        states.removeFirst(); // удаление первого элемента
        states.removeLast(); // удаление последнего элемента
         
        LinkedList<Person> people = new LinkedList<Person>();
        people.add(new Person("Mike"));
        people.addFirst(new Person("Tom"));
        people.addLast(new Person("Nick"));
        people.remove(1); // удаление второго элемента
         
        for(Person p : people){
         
            System.out.println(p.getName());
        }
        Person first = people.getFirst();
        System.out.println(first.getName()); // вывод первого элемента
    }
}
class Person{
     
    private String name;
    public Person(String value){
         
        name=value;
    }
    String getName(){return name;}
}

Здесь создаются и используются два списка: для строк и для объектов класса Person. При этом в дополнение к методам addFirst/removeLast и т.д., нам также доступны стандартные методы, определенные в интерфейсе Collection: add(), remove, contains, size и другие. Поэтому мы можем использовать разные методы для одного и того же действия. Например, добавление в самое начало списка можно сделать так: states.addFirst("Spain");, а можно сделать так: states.add(0, "Spain");

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850