На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Коллекции Java: интерфейс List


Интерфейс List является основным интерфейсом для коллекций, который позволяет хранить объекты в контейнере с изменяемым размером.



Arraylist и LinkedList как реализации

ArrayList является реализацией этого интерфейса и позволяет динамически добавлять и удалять элементы из списка. Если добавить в ArrayList больше элементов, чем его начальный размер,то он будет увеличиваться динамично. С элементами в ArrayList можно непосредственно и эффективно работать, используя get() и set() методы; ArrayList реализуется на основе массива. ArrayList обычно используется как класс реализации для интерфейса List.

LinkedList реализован как двойной связанный список. Его производительность для add() и remove() лучше, чем у Arraylist. А вот get() и set() методы имеют худшую производительность, чем у ArrayList, так как LinkedList не обеспечивает прямого доступа к своим членам.

Следующий код демонстрирует использование List и ArrayList:

import java.util.ArrayList;
import java.util.List;
public class ListExample {
    public static void main(String[] args) {

        // типовое объявление
        List<Integer> list = Arrays.asList(13,77,1,8,5,76,6);

        // альтернативное объявление вида:
        // List<Integer> list = new ArrayList<>();
        // и используем  list.add(element); для добавления элементов
        for (Integer integer : list) {
            System.out.println(integer);
        }
    }
}
Сортировка списков

Вы можете сортировать списки, используя естественный порядок или через лямбда выражения. Как правило, в Java 8 вы использовать лямбда-выражение или через ссылки.

import java.util.*;

public class MyClass {
    public static void main(String[] args) {
        System.out.println("Естественный порядок сортировки");
        List<String> l1 = createList();
        l1.sort(null);
        l1.forEach(System.out::println);

        System.out.println("Сортировка с лямбда выражением");
        List<String> l2 = createList();
        l2.sort((s1, s2) -> s1.compareToIgnoreCase(s2));  // сортировка без учета регистра
        l2.forEach(System.out::println);

        System.out.println("Сортировка методом ссылки");
        List<String> l3 = createList();
        l3.sort(String::compareToIgnoreCase);
        l3.forEach(System.out::println);

    }

    private static List<String>  createList() {
        return Arrays.asList("Google.ru", "Yandex.ru", "Upread.ru", "Yahoo.com");
}
}
Удаление элементов списка на основе условия

Метод removeIf позволяет удалять элементы списка на основе условия:

import java.util.*;

public class RemoveIfList {
    public static void main(String[] args) {
        System.out.println("Демонстрация removeIf");
        List<String> l1 = createList();
        // удаляем все элементы, которые содержат "я"
        l1.removeIf(s-> s.toLowerCase().contains("я"));
        l1.forEach(s->System.out.println(s));
    }

    private static List<String>  createList() {
        List<String> anotherList = new ArrayList<>();
        anotherList.addAll(Arrays.asList("Саша", "Таня", "Юра","Коля"));
        return anotherList;
    }
}





тегизаметки, коллекции, java, списки, list

Читайте также:




Юмористический дневник бросающего курить
О блоге


© upread.ru 2013-2019
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.