في Java ، يمكن أن تكون هناك حالات معينة يحتاج فيها المبرمج إلى فرز الإدخالات وفقًا للمتطلبات. على سبيل المثال ، استرداد القيم غير المصنفة أو التي تم إنشاؤها عشوائيًا بطريقة معينة (تصاعدي أو تنازلي). في مثل هذه الحالات ، ' Stream.sorted () 'تساعد في فرز البيانات بشكل فعال في نهاية المطور.
تتناول هذه المقالة بالتفصيل استخدام وتنفيذ طريقة 'Stream.sorted ()' في جافا.
ما هي طريقة 'Stream.sorted ()' في جافا؟
ال ' Stream.sorted () 'الأسلوب' يتوافق مع ' تدفق ' واجهه المستخدم. تعطي هذه الطريقة دفقًا مصنفًا دون التأثير على ترتيب العناصر / العناصر في الدفق الأصلي.
بناء الجملة
الحالة 1: لا توجد معلمة
تيار ( )
الحالة 2: مع المعلمة
تيار ( شركات )
في بناء الجملة هذا ، ' شركات 'يشير إلى المقارنة بناءً على الفرز الذي سيتم إجراؤه.
قبل الشروع في الأمثلة ، تأكد من تضمين الحزمة التالية. تشتمل هذه الحزمة على فئات وواجهات وما إلى ذلك للسماح بعمليات نمط وظيفي على العناصر:
استيراد java.util.stream. * ؛
مثال 1: تطبيق طريقة 'Stream.sorted ()' لفرز (تصاعدي وتنازلي) الأعداد الصحيحة في Java
ال ' تيار() 'طريقة لإنشاء دفق تسلسلي للعناصر المحددة. في هذا المثال ، يمكن تطبيق هذه الطريقة جنبًا إلى جنب مع ' Stream.sorted () 'لفرز تدفق الأعداد الصحيحة بطريقة تصاعدية وتنازلية:
الطبقة العامة مرتبة {العامة ثابت الفراغ الرئيسي ( خيط [ ] أرجس ) {
تدفق < عدد صحيح > sortStream1 = Stream.of ( 2 و 4 و 3 و 5 و 1 ) ؛
تدفق < عدد صحيح > sortStream2 = Stream.of ( 9 و 6 و 7 و 8 و 10 ) ؛
System.out.println ( 'الدفق الأول هو:' ) ؛
SortStream1.sorted ( ) .forEach ( System.out :: println ) ؛
System.out.println ( ' \ن الدفق الثاني هو: ' ) ؛
SortStream2.sorted ( ( أ ، ب ) - > ب-أ ) .forEach ( System.out :: println ) ؛
} }
في مقتطف الشفرة هذا:
- قم بإنشاء دفقين صحيحين مختلفين عبر ' ل() ' طريقة.
- بعد ذلك ، اربط ' مرتبة() 'مع البث السابق الذي تم إنشاؤه لفرز البث في' تصاعدي ' طلب.
- الآن ، قم بتطبيق ' مرتبة() 'مرة أخرى مع الدفق الأخير لإرجاع الدفق في' تنازلي 'أمرًا وفقًا لمقارن محدد ، أي' ب-أ '.
- أخيرًا ، اعرض دفق الأعداد الصحيحة التي تم فرزها في كلتا الحالتين على وحدة التحكم.
انتاج |
في هذا الإخراج ، يمكن ملاحظة أنه يتم فرز كلا الدفقين وفقًا لذلك.
قبل التوجه إلى المثال التالي ، قم بتضمين المثال الموضح أدناه للوصول إلى جميع الفئات والطرق:
استيراد java.util. * ؛
مثال 2: تطبيق أسلوب 'Stream.sorted ()' لفرز كائنات الفئة
في هذا المثال بالذات ، يمكن تنفيذ الطريقة التي تمت مناقشتها على كائنات الفئة لفرز القيم التي تم تمريرها:
بيانات الطبقة {int بطاقة تعريف ؛
اسم السلسلة
بيانات ( int بطاقة تعريف ، اسم السلسلة ) {
this.id = بطاقة تعريف ؛
this.name = name ؛
}
السلسلة العامة إلى السلسلة ( ) {
يعود 'معرف =' + هذا
+ '، الاسم =' + this.name؛
} }
فئة تيارات {
العامة ثابت الفراغ الرئيسي ( خيط [ ] أرجس ) {
قائمة < بيانات > list = ArrayList جديدة < بيانات > ( ) ؛
قائمة ( بيانات جديدة ( 2 و 'هاري' ) ) ؛
قائمة ( بيانات جديدة ( 1 و 'ديفيد' ) ) ؛
قائمة ( بيانات جديدة ( 3 و 'توم' ) ) ؛
تدفق < بيانات > تيار = list.stream ( ) ؛
تيار ( ( e1, e2 ) - > e1.id - e2.id ) .forEach ( System.out :: println ) ؛
} }
في سطور التعليمات البرمجية هذه ، قم بتنفيذ الخطوات التالية:
- أولاً ، أعلن عن فئة باسم ' بيانات '.
- في تعريفه ، حدد المتغيرات المذكورة.
- في الخطوة التالية ، قم بتضمين مُنشئ فئة ذي معلمات به معلمات متطابقة مع المتغيرات المحددة.
- في تعريف المُنشئ ، ارجع إلى المتغيرات المحددة ، وخصص لها قيم الوسيطات التي تم تمريرها عبر ' هذا '.
- الآن ، تجاوز ' إلى سلسلة() 'طريقة لإرجاع القيم التي تم تمريرها.
- في ال ' رئيسي() '، قم بإنشاء قائمة بكائنات الفئة وإضافة القيم التي تم تمريرها إلى القائمة عبر' يضيف() ' طريقة.
- بعد ذلك ، قم بإحضار الدفق من القائمة عبر ' تدفق() ' طريقة.
- أيضًا ، قم بتطبيق ' مرتبة() 'مع المقارنة المحددة التي تقارن بين كائنين على أساس' بطاقة تعريف 'في' تصاعدي ' طريقة.
- أخيرًا ، قم بتطبيق ' لكل () 'طريقة لتسجيل تدفق الكائنات التي تم فرزها على وحدة التحكم.
انتاج |
في هذه النتيجة ، يمكن تحليل أن قيم الكائن مرتبة بشكل مناسب.
خاتمة
ال ' Stream.sorted () 'هي الطريقة المقابلة لـ' تدفق ”التي تعطي دفقًا مصنّفًا دون التأثير على ترتيب العناصر / العناصر في الدفق الأصلي. تقوم هذه الطريقة بفرز العناصر بطريقة افتراضية وكذلك بناءً على المقارنة المحددة. ناقشت هذه المدونة استخدام وتنفيذ طريقة 'Stream.sorted ()' في جافا.