Перейти к основному содержимому

169 записей с тегом "Java Коллекции"

Посмотреть все теги

· 9 мин. чтения

1. Обзор

Язык программирования Java предоставляет массивы и коллекции для группировки объектов. В основном коллекция поддерживается массивом и моделируется набором методов для обработки содержащихся в ней элементов.

При разработке программного обеспечения довольно часто используются обе эти структуры данных. Следовательно, программистам нужен связующий механизм для преобразования этих элементов из одной формы в другую. Метод asList из класса Arrays и метод toArray интерфейса Collection образуют этот мост. ``

В этом уроке мы проведем глубокий анализ интересного аргумента: какой метод toArray использовать и почему? Мы также будем использовать бенчмаркинг с помощью JMH для подтверждения этих аргументов.

2. Кроличья нора toArray

· 4 мин. чтения

1. Обзор

В этом руководстве мы рассмотрим различные методы получения списка из потока . Мы также обсудим различия между ними и когда какой метод использовать.

2. Сбор элементов потока в список

Получение списка из потока — наиболее часто используемая терминальная операция конвейера потока . До Java 16 мы использовали метод Stream.collect() и передавали его коллектору в качестве аргумента для сбора элементов. Сам коллектор был создан путем вызова метода Collectors.toList() .

Однако были запросы на изменение метода для получения списка непосредственно из экземпляра Stream . После выпуска Java 16 теперь мы можем вызывать toList() , новый метод непосредственно в Stream , чтобы получить List . Такие библиотеки, как StreamEx, также предоставляют удобный способ получить список непосредственно из потока .

· 6 мин. чтения

1. Введение

В этом руководстве мы рассмотрим производительность двух методов Java: System.arraycopy() и Arrays.copyOf() . Сначала мы проанализируем их реализации. Во-вторых, мы запустим несколько тестов, чтобы сравнить их среднее время выполнения.

2. Производительность System.arraycopy()

System.arraycopy() копирует содержимое массива из исходного массива, начиная с указанной позиции, в указанную позицию в целевом массиве. Кроме того, перед копированием JVM проверяет, совпадают ли исходный и конечный типы.

При оценке производительности System.arraycopy() нужно помнить, что это нативный метод. Нативные методы реализованы в платформенно-зависимом коде (обычно C) и доступны через вызовы JNI.

· 3 мин. чтения

1. Введение

В этом кратком руководстве мы узнаем , как удалить повторяющиеся элементы из списка. Сначала мы будем использовать обычную Java, затем Guava и, наконец, решение на основе Java 8 Lambda.

Этот учебник является частью серии « Java — Back to Basic » здесь, на ForEach.

2. Удалите дубликаты из списка, используя обычную Java

Мы можем легко удалить повторяющиеся элементы из списка с помощью стандартной Java Collections Framework через Set :

· 7 мин. чтения

1. Обзор

Класс Java Stack реализует структуру данных стека . В Java 1.6 появился интерфейс Deque , предназначенный для реализации «двусторонней очереди», которая поддерживает вставку и удаление элементов на обоих концах.

Теперь мы также можем использовать интерфейс Deque в качестве стека LIFO (последним пришел — первым вышел). Более того, если мы посмотрим на Javadoc класса Stack , то увидим:

Более полный и непротиворечивый набор операций стека LIFO предоставляется интерфейсом Deque и его реализациями, которые следует использовать вместо этого класса.

В этом руководстве мы собираемся сравнить класс Java Stack и интерфейс Deque . Далее мы обсудим, почему мы должны использовать Deque over Stack для стеков LIFO .

2. Класс против интерфейса

· 6 мин. чтения

1. Обзор

В этой быстрой статье мы познакомимся с классом java.util.Stack и начнем рассматривать, как мы можем его использовать.

Стек — это универсальная структура данных, которая представляет набор объектов в порядке LIFO (последним пришел — первым вышел), что позволяет помещать/извлекать элементы за постоянное время .

Для новых реализаций мы должны отдавать предпочтение интерфейсу Deque и его реализациям . Deque определяет более полный и непротиворечивый набор операций LIFO. Однако нам все еще может понадобиться иметь дело с классом Stack , особенно в устаревшем коде, поэтому важно хорошо его понимать.

2. Создайте стек

· 10 мин. чтения

1. Обзор

В этой статье показано, как применить сортировку к Array , List , Set и Map в Java 7 и Java 8.

2. Сортировка массивом

Начнем с сортировки массивов целых чисел с помощью метода Arrays.sort() .

Мы определим следующие массивы int в методе @Before jUnit:

· 5 мин. чтения

1. Обзор

В этой статье мы увидим значение коэффициента загрузки в HashMap Java и то, как он влияет на производительность карты.

2. Что такое HashMap ?

Класс HashMap принадлежит платформе Java Collection и обеспечивает базовую реализацию интерфейса Map . Мы можем использовать его, когда хотим хранить данные в виде пар ключ-значение. Эти пары ключ-значение называются записями карты и представлены классом Map.Entry .

3. Внутреннее устройство HashMap

· 6 мин. чтения

1. Обзор

Иногда, когда мы компилируем наши исходные файлы Java, мы видим предупреждающие сообщения « unchecked cast », распечатываемые компилятором Java.

В этом уроке мы более подробно рассмотрим предупреждающее сообщение. Мы обсудим, что означает это предупреждение, почему нас предупреждают и как решить проблему.

Некоторые компиляторы Java по умолчанию подавляют непроверенные предупреждения.

Давайте удостоверимся, что мы включили опцию компилятора для печати «непроверенных» предупреждений , прежде чем мы рассмотрим это предупреждение « непроверенное приведение ».

2. Что означает предупреждение «unchecked cast» ?

· 8 мин. чтения

1. Обзор

Коллекции в Java основаны на паре основных интерфейсов и более чем дюжине классов реализации. Широкий выбор различных реализаций иногда может привести к путанице.

Принятие решения о том, какой тип коллекции использовать для конкретного варианта использования, — нетривиальная задача. Это решение может сильно повлиять на читаемость и производительность нашего кода.

Вместо того, чтобы объяснять все типы коллекций в одной статье, мы расскажем о трех наиболее распространенных: ArrayList, LinkedList и HashMap. В этом руководстве мы рассмотрим, как они хранят данные, их производительность и порекомендуем, когда их использовать.

2. Коллекции