"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية عكس دفق Java 8 بكفاءة؟

كيفية عكس دفق Java 8 بكفاءة؟

نشر في 2025-02-06
تصفح:248

How to Reverse a Java 8 Stream Efficiently?

عكس تدفقات java 8 عملية واحدة مشتركة هي عكس تيار. تستكشف هذه المقالة طريقتين لتحقيق هذا: حل محدد لعكس intstream ونهج عام لعكس أي دفق من الكائنات. intstream ، يمكن إنشاء طريقة مخصصة لرسم خريطة نطاق القيم بترتيب عكسي. على سبيل المثال ، إذا كان لدينا intstream يتراوح من -5 إلى 0 ، فإن عكسه سيؤدي إلى الدفق من 0 إلى -5. يمكن تحقيق ذلك باستخدام الرمز التالي:

ثابت intstream revrange (int from ، int to) { العودة intstream.range (من ، إلى) .map (i -> to - i from - 1) ؛ }

تتجنب هذه الطريقة الملاكمة والفرز ، مما يؤدي إلى حل أكثر كفاءة. يمكن استخدام نهجين. الأول ينطوي على تخزين عناصر الدفق في صفيف وقراءتها بترتيب عكسي: @crumpresswarnings ("غير محدد") ثابت دفق عكس (دفق إدخال) { كائن [] temp = input.toarray () ؛ إرجاع (دفق ) intstream.range (0 ، Temp.Length) .MaptOOBJ (i -> temp [temp.length - i - 1]) ؛ }

هذا النهج واضح ومباشر ولكنه يتطلب إنشاء صفيف وسيطة.

> الإدخال = ... ؛ قائمة الإخراج = input.collect (ArrayList :: New ، (قائمة ، ه) -> list.add (0 ، e) ، (list1 ، list2) -> list1.addall (0 ، list2)) ؛
static IntStream revRange(int from, int to) {
    return IntStream.range(from, to)
                    .map(i -> to - i   from - 1);
}
يتطلب هذا الخيار أيضًا تخزين عناصر الدفق ، لكنه يلغي الحاجة إلى النسخ باستخدام قائمة ArrayList مع إدراج في المقدمة.

تجدر الإشارة إلى أنه لا توجد طريقة "مناسبة" لعكس دفق دون تخزين العناصر. ومع ذلك ، توفر الطرق المقدمة حلولًا فعالة ومتعددة الاستخدامات لكل من الانعكاس الداخلي المحدد وانعكاس الدفق العام.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3