1. Обзор
В этом кратком руководстве показано, как сделать ArrayList
неизменяемым с помощью основного JDK, с помощью Guava и, наконец, с Apache Commons Collections 4.
Эта статья является частью серии « Java — Back to Basic » здесь, на ForEach.
В этом кратком руководстве показано, как сделать ArrayList
неизменяемым с помощью основного JDK, с помощью Guava и, наконец, с Apache Commons Collections 4.
Эта статья является частью серии « Java — Back to Basic » здесь, на ForEach.
Выбор случайного элемента списка
— очень простая операция, но не столь очевидная для реализации. В этой статье мы покажем наиболее эффективный способ сделать это в различных контекстах.
Чтобы получить случайный элемент из экземпляра List
, вам нужно сгенерировать случайный номер индекса, а затем получить элемент по этому сгенерированному номеру индекса с помощью метода List.get()
.
Ключевым моментом здесь является то, что вы не должны использовать индекс, превышающий размер вашего списка .
В этом руководстве мы кратко рассмотрим сходства и различия в распределении памяти между массивами Java и стандартным ArrayList
. Кроме того, мы увидим, как добавлять и вставлять элементы в массив и ArrayList
.
Массив Java — это базовая структура данных, предоставляемая языком. Напротив, ArrayList
является реализацией интерфейса List
, поддерживаемой массивом, и предоставляется в Java Collections Framework.
Мы все использовали Arrays.sort()
для сортировки массива объектов или примитивов. В JDK 8 создатели расширили API, предоставив новый метод: Arrays.parallelSort()
.
В этом уроке мы проведем сравнение между методами sort()
и parallelSort() .
Массивы.sort()
Метод Arrays.sort()
сортирует массив объектов или примитивов. В этом методе используется алгоритм сортировки Dual-Pivot Quicksort . Другими словами, это пользовательская реализация алгоритма быстрой сортировки для повышения производительности.
В этом уроке мы увидим различные способы проверки того, отсортирован ли массив.
Однако перед началом было бы интересно проверить , как сортировать массивы в Java .
Один из способов проверки — цикл for .
Мы можем перебирать все значения массива одно за другим.
В этом руководстве мы собираемся изучить различные способы сравнения двух HashMaps
в Java .
Мы обсудим несколько способов проверки сходства двух HashMaps
. Мы также будем использовать Java 8 Stream API и Guava, чтобы получить подробные различия между различными HashMaps
.
Map.equals()
Во- первых, мы будем использовать Map.equals()
, чтобы проверить, имеют ли два HashMap
одинаковые записи:
В этом руководстве мы рассмотрим концепцию поверхностной и глубокой копии HashMap, а
также несколько методов копирования HashMap
в Java.
Мы также рассмотрим некоторые внешние библиотеки, которые могут помочь нам в конкретных случаях.
Во-первых, давайте разберемся с концепцией мелких и глубоких копий в HashMaps
.
В этом кратком руководстве мы рассмотрим различные способы поиска максимального значения в карте
Java . Мы также увидим, как новые возможности Java 8
упростили эту операцию.
Прежде чем мы начнем, давайте кратко вспомним, как объекты сравниваются в Java.
Обычно объекты могут выражать естественный порядок путем реализации метода compareTo()
из интерфейса Comparable
. Однако порядок, отличный от естественного, может использоваться через объект Comparator
. Мы увидим их более подробно по ходу дела.
В этой статье мы собираемся более подробно изучить самую популярную реализацию интерфейса Map из Java Collections Framework, продолжая с того места, на котором остановилась наша
вступительная статья.
Прежде чем мы приступим к реализации, важно отметить, что основные интерфейсы коллекций List
и Set
расширяют Collection
, а Map
— нет.
Проще говоря, HashMap
хранит значения по ключу и предоставляет API для добавления, извлечения и обработки сохраненных данных различными способами. Реализация основана на принципах хеш-таблицы , которые на первый взгляд кажутся сложными, но на самом деле их очень легко понять.
Пары ключ-значение хранятся в так называемых корзинах, которые вместе составляют то, что называется таблицей, которая на самом деле является внутренним массивом.
Как только мы узнаем ключ, под которым хранится или должен храниться объект, операции хранения и извлечения выполняются за постоянное время , O(1)
в хеш-карте с хорошими размерами.
В этом кратком руководстве мы продемонстрируем три различных подхода к извлечению ключа из карты для заданного значения. Мы также обсудим положительные и отрицательные стороны различных решений.
Чтобы узнать больше об интерфейсе карты
, вы можете прочитать эту статью .