Рубрики
Без рубрики

Разделитель Java

Разделитель Java, Разделитель на java, Пример разделителя коллекции Java, разделитель(), Учебное пособие по разделителю Java, метод для каждого сообщения

Автор оригинала: Pankaj Kumar.

Разделитель Java является одним из четырех итераторов – Перечисления, Итератора , списка и разделителя.

Разделитель Java

Как и Iterator и ListIterator, Spliterator-это итератор Java, который используется для перебора элементов по одному из реализованного объекта списка.

Некоторые важные моменты, касающиеся Java Spliterator, заключаются в следующем:

  1. Java Spliterator-это интерфейс в коллекции Java API.
  2. Разделитель представлен в Java 8 релизе в java.util пакете.
  3. Он поддерживает функции параллельного программирования.
  4. Мы можем использовать его как для API коллекции, так и для классов Stream API.
  5. Он предоставляет характеристики объектов коллекции или API.
  6. Мы НЕ можем использовать этот итератор для Map реализованных классов.
  7. Он использует метод try Advance() для итерации элементов по отдельности в нескольких потоках для поддержки параллельной обработки.
  8. Он использует метод forEachRemaining() для последовательного перебора элементов в одном потоке.
  9. Он использует метод try Split () , чтобы разделить себя на разделители для поддержки параллельной обработки.
  10. Разделитель поддерживает как последовательную, так и параллельную обработку данных.

Сам разделитель не обеспечивает поведение параллельного программирования. Тем не менее, он предоставляет некоторые методы для его поддержки. Разработчики должны использовать методы интерфейса Spliterator и реализовывать параллельное программирование с помощью платформы Fork/Join (один хороший подход).

Основные функциональные возможности разделителя

  • Разделение исходных данных.
  • Обработка исходных данных.

Диаграмма классов разделителя Java

На следующей диаграмме показана схема классов интерфейса Java Spliterator. Она имеет множество областей и методов.

Методы разделителя Java

В этом разделе мы перечислим все методы Java Spliterator один за другим с некоторым полезным описанием.

  1. int характеристики(): Возвращает набор характеристик этого разделителя и его элементов.
  2. long estimateSize(): возвращает оценку количества элементов, с которыми столкнется обход forEachRemaining (), или возвращает значение Long.MAX_VALUE, если оно бесконечно, неизвестно или слишком дорого для вычисления.
  3. по умолчанию недействительно forEachRemaining(действие потребителя): Выполняет данное действие для каждого оставшегося элемента последовательно в текущем потоке, пока все элементы не будут обработаны или действие не вызовет исключение.
  4. Компаратор по умолчанию getComparator(): Если источник этого разделителя ОТСОРТИРОВАН Компаратором, возвращает этот компаратор.
  5. по умолчанию длинный getExactSizeIfKnown(): Удобный метод, который возвращает размер оценки (), если этот разделитель имеет РАЗМЕР, иначе -1.
  6. логическое значение по умолчанию имеет характеристики(в характеристики): Возвращает значение true, если эти характеристики разделителя() содержат все заданные характеристики.
  7. логическое действие tryAdvance(действие потребителя): Если оставшийся элемент существует, выполняет над ним данное действие, возвращая значение true; в противном случае возвращает значение false.
  8. Разделитель trySplit(): Если этот разделитель может быть разделен, возвращает разделитель, покрывающий элементы, которые при возврате из этого метода не будут покрыты этим разделителем.

Пример разделителя Java

В этом разделе мы обсудим, как создать объект Java Spliterator с помощью spliterator (), и приведем простой пример.

import java.util.Spliterator;
import java.util.ArrayList;
import java.util.List;

public class SpliteratorSequentialIteration
{
  public static void main(String[] args) 
  {
	List names = new ArrayList<>();
	names.add("Rams");
	names.add("Posa");
	names.add("Chinni");
		
	// Getting Spliterator
	Spliterator namesSpliterator = names.spliterator();
		
	// Traversing elements
	namesSpliterator.forEachRemaining(System.out::println);			
   }
}

Выход:-

Rams
Posa
Chinni

Если мы понаблюдаем за приведенной выше программой и выводом, то легко поймем, что это разделитель.Метод forEachRemaining() работает так же, как ArrayList .foreach(). Да, и то, и другое работает одинаково.

Преимущества сплитератора

  1. В отличие от Итератора и листератора, он поддерживает функции параллельного программирования.
  2. В отличие от Итератора и листератора, он поддерживает как последовательную, так и параллельную обработку данных.
  3. По сравнению с другими итераторами, он обеспечивает лучшую производительность.

Итератор против разделителя

Введено в Java 1.2. Представлен в Java 1.8.
Это итератор для API всей коллекции. Это итератор как для сбора, так и для потокового API, за исключением классов, реализованных на карте.
Это универсальный итератор. Это НЕ универсальный итератор.
Он НЕ поддерживает параллельное программирование. Он поддерживает параллельное программирование.

Это все о Spliterator на Java.

Ссылка: API Doc