На нашем сайте мы используем 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


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




Создание графика по точкам на Java
Просмотр таблиц в SQLite и MD5


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