Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Отримання Зведених Метрик Потоку за Допомогою Методу summaryStatistics() | Термінальні Операції у Stream API
Stream API

bookОтримання Зведених Метрик Потоку за Допомогою Методу summaryStatistics()

Під час обробки даних часто виникає потреба обчислювати статистичні метрики, такі як сума, середнє значення, мінімум, максимум та кількість елементів.

Ви вже ознайомилися з пошуком мінімального та максимального значень у потоці, але існує метод, який дозволяє отримати всі ці статистики одночасно. Java Stream API надає спеціальний метод summaryStatistics(), який спрощує отримання загальних статистичних даних з числових потоків.

Метод summaryStatistics()

Stream API також містить спеціалізовані числові потоки: IntStream, LongStream та DoubleStream. Вони працюють так само, як і звичайні потоки, але оптимізовані для певних примітивних типів.

Кожен із цих числових потоків містить метод summaryStatistics(), який повертає екземпляр IntSummaryStatistics, LongSummaryStatistics або DoubleSummaryStatistics відповідно. Ці об'єкти містять основні статистичні метрики, такі як кількість, сума, мінімум, максимум та середнє значення.

IntSummaryStatistics summaryStatistics();
LongSummaryStatistics summaryStatistics();
DoubleSummaryStatistics summaryStatistics();

Використовуючи метод summaryStatistics() для числового потоку, можна швидко отримати та проаналізувати статистичні дані про його значення.

Основні методи

У Java класи IntSummaryStatistics, LongSummaryStatistics та DoubleSummaryStatistics використовуються для збору статистики по числових даних. Вони надають набір методів для отримання основних статистичних показників.

Практичний приклад

В інтернет-магазині потрібно проаналізувати ціни товарів, щоб визначити мінімальну та максимальну ціну, середню ціну та загальну кількість товарів.

Main.java

Main.java

copy
1234567891011121314151617181920
package com.example; import java.util.List; import java.util.IntSummaryStatistics; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<Integer> prices = List.of(1500, 2000, 3500, 1200, 4000, 2500); IntSummaryStatistics stats = prices.stream() .collect(Collectors.summarizingInt(Integer::intValue)); System.out.println("Minimum price: " + stats.getMin()); System.out.println("Maximum price: " + stats.getMax()); System.out.println("Average price: " + stats.getAverage()); System.out.println("Total number of items: " + stats.getCount()); System.out.println("Total sum: " + stats.getSum()); } }

У цьому коді створюється список цін продуктів і перетворюється на числовий стрім. Метод Collectors.summarizingInt(Integer::intValue) збирає статистичні дані та зберігає їх у об'єкті IntSummaryStatistics. Далі використовуються методи getMin(), getMax(), getAverage(), getCount() і getSum() для отримання необхідних значень.

Додаткові методи

Метод combine() об'єднує два статистичних об'єкти. Це корисно при обробці даних у кількох потоках або при консолідації статистики з різних джерел.

Метод accept() дозволяє вручну додавати значення до статистичного об'єкта, що зручно для динамічного оновлення даних.

Main.java

Main.java

copy
1234567891011121314151617181920212223
package com.example; import java.util.IntSummaryStatistics; public class Main { public static void main(String[] args) { IntSummaryStatistics stats1 = new IntSummaryStatistics(); stats1.accept(1500); stats1.accept(2500); IntSummaryStatistics stats2 = new IntSummaryStatistics(); stats2.accept(3500); stats2.accept(4500); stats1.combine(stats2); System.out.println("Minimum price: " + stats1.getMin()); System.out.println("Maximum price: " + stats1.getMax()); System.out.println("Average price: " + stats1.getAverage()); System.out.println("Total number of items: " + stats1.getCount()); System.out.println("Total sum: " + stats1.getSum()); } }

У цьому прикладі створюються два об'єкти IntSummaryStatistics, кожен з яких містить значення, додані за допомогою методу accept(). Метод combine() потім об'єднує статистику з обох об'єктів, оновлюючи загальну кількість, суму та мінімальні/максимальні значення.

У результаті, stats1 тепер містить об'єднану статистику для всіх чисел, яка потім виводиться на консоль.

1. Який клас використовується для збору статистики за значеннями int у Stream API?

2. Який метод додає значення до об'єкта IntSummaryStatistics?

3. Який метод об'єднує два об'єкти IntSummaryStatistics?

question mark

Який клас використовується для збору статистики за значеннями int у Stream API?

Select the correct answer

question mark

Який метод додає значення до об'єкта IntSummaryStatistics?

Select the correct answer

question mark

Який метод об'єднує два об'єкти IntSummaryStatistics?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 9

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 2.33

bookОтримання Зведених Метрик Потоку за Допомогою Методу summaryStatistics()

Свайпніть щоб показати меню

Під час обробки даних часто виникає потреба обчислювати статистичні метрики, такі як сума, середнє значення, мінімум, максимум та кількість елементів.

Ви вже ознайомилися з пошуком мінімального та максимального значень у потоці, але існує метод, який дозволяє отримати всі ці статистики одночасно. Java Stream API надає спеціальний метод summaryStatistics(), який спрощує отримання загальних статистичних даних з числових потоків.

Метод summaryStatistics()

Stream API також містить спеціалізовані числові потоки: IntStream, LongStream та DoubleStream. Вони працюють так само, як і звичайні потоки, але оптимізовані для певних примітивних типів.

Кожен із цих числових потоків містить метод summaryStatistics(), який повертає екземпляр IntSummaryStatistics, LongSummaryStatistics або DoubleSummaryStatistics відповідно. Ці об'єкти містять основні статистичні метрики, такі як кількість, сума, мінімум, максимум та середнє значення.

IntSummaryStatistics summaryStatistics();
LongSummaryStatistics summaryStatistics();
DoubleSummaryStatistics summaryStatistics();

Використовуючи метод summaryStatistics() для числового потоку, можна швидко отримати та проаналізувати статистичні дані про його значення.

Основні методи

У Java класи IntSummaryStatistics, LongSummaryStatistics та DoubleSummaryStatistics використовуються для збору статистики по числових даних. Вони надають набір методів для отримання основних статистичних показників.

Практичний приклад

В інтернет-магазині потрібно проаналізувати ціни товарів, щоб визначити мінімальну та максимальну ціну, середню ціну та загальну кількість товарів.

Main.java

Main.java

copy
1234567891011121314151617181920
package com.example; import java.util.List; import java.util.IntSummaryStatistics; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<Integer> prices = List.of(1500, 2000, 3500, 1200, 4000, 2500); IntSummaryStatistics stats = prices.stream() .collect(Collectors.summarizingInt(Integer::intValue)); System.out.println("Minimum price: " + stats.getMin()); System.out.println("Maximum price: " + stats.getMax()); System.out.println("Average price: " + stats.getAverage()); System.out.println("Total number of items: " + stats.getCount()); System.out.println("Total sum: " + stats.getSum()); } }

У цьому коді створюється список цін продуктів і перетворюється на числовий стрім. Метод Collectors.summarizingInt(Integer::intValue) збирає статистичні дані та зберігає їх у об'єкті IntSummaryStatistics. Далі використовуються методи getMin(), getMax(), getAverage(), getCount() і getSum() для отримання необхідних значень.

Додаткові методи

Метод combine() об'єднує два статистичних об'єкти. Це корисно при обробці даних у кількох потоках або при консолідації статистики з різних джерел.

Метод accept() дозволяє вручну додавати значення до статистичного об'єкта, що зручно для динамічного оновлення даних.

Main.java

Main.java

copy
1234567891011121314151617181920212223
package com.example; import java.util.IntSummaryStatistics; public class Main { public static void main(String[] args) { IntSummaryStatistics stats1 = new IntSummaryStatistics(); stats1.accept(1500); stats1.accept(2500); IntSummaryStatistics stats2 = new IntSummaryStatistics(); stats2.accept(3500); stats2.accept(4500); stats1.combine(stats2); System.out.println("Minimum price: " + stats1.getMin()); System.out.println("Maximum price: " + stats1.getMax()); System.out.println("Average price: " + stats1.getAverage()); System.out.println("Total number of items: " + stats1.getCount()); System.out.println("Total sum: " + stats1.getSum()); } }

У цьому прикладі створюються два об'єкти IntSummaryStatistics, кожен з яких містить значення, додані за допомогою методу accept(). Метод combine() потім об'єднує статистику з обох об'єктів, оновлюючи загальну кількість, суму та мінімальні/максимальні значення.

У результаті, stats1 тепер містить об'єднану статистику для всіх чисел, яка потім виводиться на консоль.

1. Який клас використовується для збору статистики за значеннями int у Stream API?

2. Який метод додає значення до об'єкта IntSummaryStatistics?

3. Який метод об'єднує два об'єкти IntSummaryStatistics?

question mark

Який клас використовується для збору статистики за значеннями int у Stream API?

Select the correct answer

question mark

Який метод додає значення до об'єкта IntSummaryStatistics?

Select the correct answer

question mark

Який метод об'єднує два об'єкти IntSummaryStatistics?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 9
some-alt