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

bookОбчислення Статистики Потоку За Допомогою Count(), Max() Та Min()

У програмуванні часто виникає потреба порахувати кількість елементів у колекції або знайти серед них мінімальне та максимальне значення.

Однак програмісти зазвичай не пишуть власні алгоритми для таких завдань, оскільки вже існують вбудовані методи. Stream API надає зручні методи для роботи з колекціями, дозволяючи виконувати обчислення над елементами потоку.

Серед таких методів — count(), max() та min(), які допомагають визначити кількість елементів і знайти найбільше та найменше значення.

Метод count()

Метод count() повертає кількість елементів у потоці. Його часто використовують, коли потрібно визначити розмір колекції після фільтрації даних.

long count();

Не приймає жодних параметрів і повертає примітивний тип long.

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

В інтернет-магазині потрібно порахувати кількість товарів зі знижкою понад 20%.

Main.java

Main.java

copy
123456789101112131415161718192021222324252627282930313233
package com.example; import java.util.List; public class Main { public static void main(String[] args) { List<Product> products = List.of( new Product("Laptop", 15.0), new Product("Smartphone", 25.0), new Product("Tablet", 30.0) ); long discountedProducts = products.stream() .filter(product -> product.getDiscount() > 20.0) .count(); System.out.println("Number of products with more than 20% discount: " + discountedProducts); } } class Product { private String name; private double discount; public Product(String name, double discount) { this.name = name; this.discount = discount; } public double getDiscount() { return discount; } }

У цьому прикладі метод filter() вибирає продукти зі знижкою понад 20%, а count() визначає їхню кількість.

Метод max()

Метод max() повертає максимальний елемент у потоці відповідно до заданого Comparator. Якщо потік порожній, повертається Optional.empty().

Optional<T> max(Comparator<? super T> comparator);

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

Знайти найдорожчий товар в інтернет-магазині для просування його як преміального продукту.

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728293031323334353637383940
package com.example; import java.util.List; import java.util.Optional; import java.util.Comparator; public class Main { public static void main(String[] args) { List<Product> products = List.of( new Product("Laptop", 1200.0), new Product("Smartphone", 800.0), new Product("Tablet", 600.0) ); Optional<Product> mostExpensiveProduct = products.stream() .max(Comparator.comparing(Product::getPrice)); mostExpensiveProduct.ifPresent(product -> System.out.println("Most expensive product: " + product.getName() + " - $" + product.getPrice()) ); } } class Product { private String name; private double price; public Product(String name, double price) { this.name = name; this.price = price; } public double getPrice() { return price; } public String getName() { return name; } }

У цьому коді Comparator.comparing(Product::getPrice) порівнює товари за ціною, а max() обирає найдорожчий.

Метод min()

Метод min() подібний до max(), але повертає найменший елемент у потоці на основі заданого Comparator.

Optional<T> min(Comparator<? super T> comparator);

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

Пошук товару з найменшим залишком на складі для оцінки потреби у поповненні запасів.

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728293031323334353637383940
package com.example; import java.util.List; import java.util.Optional; import java.util.Comparator; public class Main { public static void main(String[] args) { List<Product> products = List.of( new Product("Laptop", 5), new Product("Smartphone", 0), new Product("Tablet", 2) ); Optional<Product> leastStockProduct = products.stream() .min(Comparator.comparing(Product::getStock)); leastStockProduct.ifPresent(product -> System.out.println("Product with the lowest stock: " + product.getName() + " - " + product.getStock() + " units") ); } } class Product { private String name; private int stock; public Product(String name, int stock) { this.name = name; this.stock = stock; } public int getStock() { return stock; } public String getName() { return name; } }

Цей код визначає товар з найменшими запасами за допомогою методу min() та Comparator.comparing(Product::getStock).

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Awesome!

Completion rate improved to 2.33

bookОбчислення Статистики Потоку За Допомогою Count(), Max() Та Min()

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

У програмуванні часто виникає потреба порахувати кількість елементів у колекції або знайти серед них мінімальне та максимальне значення.

Однак програмісти зазвичай не пишуть власні алгоритми для таких завдань, оскільки вже існують вбудовані методи. Stream API надає зручні методи для роботи з колекціями, дозволяючи виконувати обчислення над елементами потоку.

Серед таких методів — count(), max() та min(), які допомагають визначити кількість елементів і знайти найбільше та найменше значення.

Метод count()

Метод count() повертає кількість елементів у потоці. Його часто використовують, коли потрібно визначити розмір колекції після фільтрації даних.

long count();

Не приймає жодних параметрів і повертає примітивний тип long.

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

В інтернет-магазині потрібно порахувати кількість товарів зі знижкою понад 20%.

Main.java

Main.java

copy
123456789101112131415161718192021222324252627282930313233
package com.example; import java.util.List; public class Main { public static void main(String[] args) { List<Product> products = List.of( new Product("Laptop", 15.0), new Product("Smartphone", 25.0), new Product("Tablet", 30.0) ); long discountedProducts = products.stream() .filter(product -> product.getDiscount() > 20.0) .count(); System.out.println("Number of products with more than 20% discount: " + discountedProducts); } } class Product { private String name; private double discount; public Product(String name, double discount) { this.name = name; this.discount = discount; } public double getDiscount() { return discount; } }

У цьому прикладі метод filter() вибирає продукти зі знижкою понад 20%, а count() визначає їхню кількість.

Метод max()

Метод max() повертає максимальний елемент у потоці відповідно до заданого Comparator. Якщо потік порожній, повертається Optional.empty().

Optional<T> max(Comparator<? super T> comparator);

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

Знайти найдорожчий товар в інтернет-магазині для просування його як преміального продукту.

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728293031323334353637383940
package com.example; import java.util.List; import java.util.Optional; import java.util.Comparator; public class Main { public static void main(String[] args) { List<Product> products = List.of( new Product("Laptop", 1200.0), new Product("Smartphone", 800.0), new Product("Tablet", 600.0) ); Optional<Product> mostExpensiveProduct = products.stream() .max(Comparator.comparing(Product::getPrice)); mostExpensiveProduct.ifPresent(product -> System.out.println("Most expensive product: " + product.getName() + " - $" + product.getPrice()) ); } } class Product { private String name; private double price; public Product(String name, double price) { this.name = name; this.price = price; } public double getPrice() { return price; } public String getName() { return name; } }

У цьому коді Comparator.comparing(Product::getPrice) порівнює товари за ціною, а max() обирає найдорожчий.

Метод min()

Метод min() подібний до max(), але повертає найменший елемент у потоці на основі заданого Comparator.

Optional<T> min(Comparator<? super T> comparator);

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

Пошук товару з найменшим залишком на складі для оцінки потреби у поповненні запасів.

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728293031323334353637383940
package com.example; import java.util.List; import java.util.Optional; import java.util.Comparator; public class Main { public static void main(String[] args) { List<Product> products = List.of( new Product("Laptop", 5), new Product("Smartphone", 0), new Product("Tablet", 2) ); Optional<Product> leastStockProduct = products.stream() .min(Comparator.comparing(Product::getStock)); leastStockProduct.ifPresent(product -> System.out.println("Product with the lowest stock: " + product.getName() + " - " + product.getStock() + " units") ); } } class Product { private String name; private int stock; public Product(String name, int stock) { this.name = name; this.stock = stock; } public int getStock() { return stock; } public String getName() { return name; } }

Цей код визначає товар з найменшими запасами за допомогою методу min() та Comparator.comparing(Product::getStock).

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

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

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

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