logo

جامعي جافا

Collectors هي فئة نهائية تعمل على توسيع فئة الكائن. يوفر عمليات الاختزال، مثل تجميع العناصر في مجموعات، وتلخيص العناصر وفقًا لمعايير مختلفة، وما إلى ذلك.

جافا شار إلى السلسلة

توفر فئة Java Collectors طرقًا مختلفة للتعامل مع العناصر

طُرق وصف
جامع ثابت عام متوسط ​​مزدوج (مخطط ToDoubleFunction) تقوم بإرجاع Collector الذي ينتج المتوسط ​​الحسابي لدالة ذات قيمة مزدوجة مطبقة على عناصر الإدخال. إذا لم يكن هناك أي عنصر، والنتيجة هي 0.
تقليل المجمع الثابت العام (هوية T، BinaryOperator op) تقوم بإرجاع Collector الذي يقوم بتخفيض عناصر الإدخال الخاصة به ضمن BinaryOperator محدد باستخدام الهوية المقدمة.
جامع ثابت عامتقليل (مشغل ثنائي) تقوم بإرجاع Collector الذي يقوم بتقليل عناصر الإدخال الخاصة به ضمن BinaryOperator المحدد. يتم وصف النتيجة بأنها اختيارية.
تقليل المجمع الثابت العام (هوية U، مخطط الوظائف، BinaryOperator op) تقوم بإرجاع Collector الذي يقوم بتقليل عناصر الإدخال الخاصة به ضمن وظيفة تعيين محددة وBinaryOperator. هذا تعميم للحد (Object، BinaryOperator) الذي يسمح بتحويل العناصر قبل التخفيض.
جامع ثابت عام> التجميع حسب (مصنف الوظائف) تقوم بإرجاع Collector الذي ينفذ عملية 'التجميع حسب' على عناصر الإدخال من النوع T، وتجميع العناصر وفقًا لوظيفة التصنيف، وإرجاع النتائج في الخريطة.
جامع ثابت عامgroupingBy(مصنف الدالة، جامع المصب) تقوم بإرجاع مُجمع ينفذ عملية 'تجميع حسب' متتالية على عناصر الإدخال من النوع T، وتجميع العناصر وفقًا لوظيفة التصنيف، ثم إجراء عملية تقليل على القيم المرتبطة بمفتاح معين باستخدام المُجمع النهائي المحدد.
ساكنة عامةتجميع المجمع حسب (مصنف الوظيفة، خريطة المورد، المصنع، المجمع النهائي) تقوم بإرجاع مُجمع ينفذ عملية 'تجميع حسب' متتالية على عناصر الإدخال من النوع T، وتجميع العناصر وفقًا لوظيفة التصنيف، ثم إجراء عملية تقليل على القيم المرتبطة بمفتاح معين باستخدام المُجمع النهائي المحدد. يتم إنشاء الخريطة التي ينتجها المجمع باستخدام وظيفة المصنع المتوفرة.
جامع ثابت عام> groupingByConcurrent(مصنف الوظائف) تقوم بإرجاع مُجمع متزامن ينفذ عملية 'التجميع حسب' على عناصر الإدخال من النوع T، وتجميع العناصر وفقًا لوظيفة التصنيف.
جامع ثابت عامgroupingByConcurrent(مصنف الوظائف، المجمع في اتجاه مجرى النهر) تقوم بإرجاع مُجمع متزامن ينفذ عملية 'التجميع حسب' المتتالية على عناصر الإدخال من النوع T، وتجميع العناصر وفقًا لوظيفة التصنيف، ثم إجراء عملية تقليل على القيم المرتبطة بمفتاح معين باستخدام المُجمع النهائي المحدد.
ساكنة عامةتجميع المجمعاتByConcurrent (مصنف الوظائف، خريطة المورد، المصنع، المجمع النهائي) تقوم بإرجاع مُجمع متزامن ينفذ عملية 'التجميع حسب' المتتالية على عناصر الإدخال من النوع T، وتجميع العناصر وفقًا لوظيفة التصنيف، ثم إجراء عملية تقليل على القيم المرتبطة بمفتاح معين باستخدام المُجمع النهائي المحدد. يتم إنشاء خريطة ConcurrentMap التي ينتجها المجمع باستخدام وظيفة المصنع المتوفرة.
جامع ثابت عام> التقسيم حسب (المسند المسند) تقوم بإرجاع Collector الذي يقسم عناصر الإدخال وفقًا للمسند، وينظمها في خريطة . لا توجد ضمانات بشأن نوع الخريطة التي تم إرجاعها أو قابلية التغيير أو التسلسل أو سلامة خيطها.
جامع ثابت عامالتقسيم حسب (المسند المسند، المجمع في اتجاه مجرى النهر) تقوم بإرجاع مُجمع يقسم عناصر الإدخال وفقًا للمسند، ويقلل القيم في كل قسم وفقًا لمجمع آخر، وينظمها في خريطة تكون قيمها نتيجة التخفيض النهائي.
جامع ثابت عامtoMap (وظيفة keyMapper، وظيفة valueMapper) تقوم بإرجاع مُجمع يجمع العناصر في خريطة تكون مفاتيحها وقيمها نتيجة لتطبيق وظائف التعيين المتوفرة على عناصر الإدخال.
جامع ثابت عامtoMap (وظيفة keyMapper، وظيفة valueMapper، BinaryOperator mergeFunction). تقوم بإرجاع مُجمع يجمع العناصر في خريطة تكون مفاتيحها وقيمها نتيجة لتطبيق وظائف التعيين المتوفرة على عناصر الإدخال.
ساكنة عامةأداة التجميع toMap (وظيفة keyMapper، وظيفة valueMapper، BinaryOperator mergeFunction، المورد MapSupplier) تقوم بإرجاع مُجمع يجمع العناصر في خريطة تكون مفاتيحها وقيمها نتيجة لتطبيق وظائف التعيين المتوفرة على عناصر الإدخال.
جامع ثابت عامtoConcurrentMap (وظيفة keyMapper، وظيفة valueMapper) تقوم بإرجاع Collector متزامن يقوم بتجميع العناصر في ConcurrentMap التي تكون مفاتيحها وقيمها نتيجة لتطبيق وظائف التعيين المتوفرة على عناصر الإدخال.
جامع ثابت عامtoConcurrentMap (وظيفة keyMapper، وظيفة valueMapper، BinaryOperator mergeFunction) تقوم بإرجاع Collector متزامن يقوم بتجميع العناصر في ConcurrentMap التي تكون مفاتيحها وقيمها نتيجة لتطبيق وظائف التعيين المتوفرة على عناصر الإدخال.
ساكنة عامةCollector toConcurrentMap (Function keyMapper، Function valueMapper، BinaryOperator mergeFunction، المورد MapSupplier) تقوم بإرجاع Collector متزامن يقوم بتجميع العناصر في ConcurrentMap التي تكون مفاتيحها وقيمها نتيجة لتطبيق وظائف التعيين المتوفرة على عناصر الإدخال.
جامع ثابت عام تلخيصInt (مخطط ToIntFunction) تقوم بإرجاع Collector الذي يطبق وظيفة رسم الخرائط المنتجة لكل عنصر إدخال، ويقوم بإرجاع إحصائيات ملخصة للقيم الناتجة.
جامع ثابت عام يلخص Long (مخطط ToLongFunction) تقوم بإرجاع Collector الذي يطبق وظيفة تعيين طويلة الإنتاج على كل عنصر إدخال، ويقوم بإرجاع إحصائيات ملخصة للقيم الناتجة.
جامع ثابت عام يلخصDouble (مخطط ToDoubleFunction) تقوم بإرجاع Collector الذي يطبق وظيفة تعيين مزدوجة الإنتاج على كل عنصر إدخال، ويقوم بإرجاع إحصائيات ملخصة للقيم الناتجة.

مثال لجامعي Java: جلب البيانات كقائمة

 import java.util.stream.Collectors; import java.util.List; import java.util.ArrayList; class Product{ int id; String name; float price; public Product(int id, String name, float price) { this.id = id; this.name = name; this.price = price; } } public class CollectorsExample { public static void main(String[] args) { List productsList = new ArrayList(); //Adding Products productsList.add(new Product(1,'HP Laptop',25000f)); productsList.add(new Product(2,'Dell Laptop',30000f)); productsList.add(new Product(3,'Lenevo Laptop',28000f)); productsList.add(new Product(4,'Sony Laptop',28000f)); productsList.add(new Product(5,'Apple Laptop',90000f)); List productPriceList = productsList.stream() .map(x->x.price) // fetching price .collect(Collectors.toList()); // collecting as list System.out.println(productPriceList); } } 

انتاج:

 [25000.0, 30000.0, 28000.0, 28000.0, 90000.0] 

مثال لجامعي Java: تحويل البيانات كمجموعة

 import java.util.stream.Collectors; import java.util.Set; import java.util.List; import java.util.ArrayList; classProduct{ intid; String name; floatprice; public Product(intid, String name, floatprice) { this.id = id; this.name = name; this.price = price; } } publicclass CollectorsExample { publicstaticvoid main(String[] args) { ListproductsList = new ArrayList(); //Adding Products productsList.add(newProduct(1,'HP Laptop',25000f)); productsList.add(newProduct(2,'Dell Laptop',30000f)); productsList.add(newProduct(3,'Lenevo Laptop',28000f)); productsList.add(newProduct(4,'Sony Laptop',28000f)); productsList.add(newProduct(5,'Apple Laptop',90000f)); SetproductPriceList = productsList.stream() .map(x->x.price) // fetching price .collect(Collectors.toSet()); // collecting as list System.out.println(productPriceList); } } 

انتاج:

 [25000.0, 30000.0, 28000.0, 90000.0] 

مثال لجامعي Java: استخدام طريقة المبلغ

 import java.util.stream.Collectors; import java.util.List; import java.util.ArrayList; class Product{ int id; String name; float price; public Product(int id, String name, float price) { this.id = id; this.name = name; this.price = price; } } public class CollectorsExample { public static void main(String[] args) { List productsList = new ArrayList(); //Adding Products productsList.add(new Product(1,'HP Laptop',25000f)); productsList.add(new Product(2,'Dell Laptop',30000f)); productsList.add(new Product(3,'Lenevo Laptop',28000f)); productsList.add(new Product(4,'Sony Laptop',28000f)); productsList.add(new Product(5,'Apple Laptop',90000f)); Double sumPrices = productsList.stream() .collect(Collectors.summingDouble(x->x.price)); // collecting as list System.out.println('Sum of prices: '+sumPrices); Integer sumId = productsList.stream().collect(Collectors.summingInt(x->x.id)); System.out.println('Sum of id's: '+sumId); } } 

انتاج:

 Sum of prices: 201000.0 Sum of id's: 15 

مثال لجامعي Java: الحصول على متوسط ​​سعر المنتج

 import java.util.stream.Collectors; import java.util.List; import java.util.ArrayList; class Product{ int id; String name; float price; public Product(int id, String name, float price) { this.id = id; this.name = name; this.price = price; } } public class CollectorsExample { public static void main(String[] args) { List productsList = new ArrayList(); //Adding Products productsList.add(new Product(1,'HP Laptop',25000f)); productsList.add(new Product(2,'Dell Laptop',30000f)); productsList.add(new Product(3,'Lenevo Laptop',28000f)); productsList.add(new Product(4,'Sony Laptop',28000f)); productsList.add(new Product(5,'Apple Laptop',90000f)); Double average = productsList.stream() .collect(Collectors.averagingDouble(p->p.price)); System.out.println('Average price is: '+average); } } 

انتاج:

 Average price is: 40200.0 

مثال لجامعي Java: عد العناصر

 import java.util.stream.Collectors; import java.util.List; import java.util.ArrayList; class Product{ intid; String name; floatprice; public Product(intid, String name, floatprice) { this.id = id; this.name = name; this.price = price; } publicint getId() { returnid; } public String getName() { returnname; } publicfloat getPrice() { returnprice; } } publicclass CollectorsExample { publicstaticvoid main(String[] args) { ListproductsList = new ArrayList(); //Adding Products productsList.add(new Product(1,'HP Laptop',25000f)); productsList.add(new Product(2,'Dell Laptop',30000f)); productsList.add(new Product(3,'Lenevo Laptop',28000f)); productsList.add(new Product(4,'Sony Laptop',28000f)); productsList.add(new Product(5,'Apple Laptop',90000f)); Long noOfElements = productsList.stream() .collect(Collectors.counting()); System.out.println('Total elements : '+noOfElements); } } 

انتاج:

 Total elements : 5