1. تسلسل السلاسل مع العامل ( ):
يعد استخدام عامل التشغيل لتسلسل السلاسل أمرًا مناسبًا لعدد قليل من التسلسلات، ولكنه يمثل مشكلات في الأداء للعمليات واسعة النطاق بسبب ثبات السلاسل.
في كل مرة يتم إنشاء سلسلة جديدة، يتم نسخ محتويات جميع السلاسل السابقة، مما يؤدي إلى وقت تربيعي للسلاسل الكبيرة.
مثال غير صحيح (التسلسل المتكرر مع ):
public String criaFatura(List- itens) { String fatura = ""; for (Item item : itens) { fatura = item.toString(); // ineficiente para grandes listas } return fatura; }
2. استخدام StringBuilder لتحسين الأداء:
بدلاً من استخدام ، استخدم StringBuilder، الذي يسمح لك بتعديل السلاسل بكفاءة، وتخصيص الذاكرة ديناميكيًا حسب الحاجة.
وقت التسلسل مع StringBuilder خطي، مما يحسن الأداء بشكل ملحوظ.
مثال صحيح (استخدام StringBuilder):
public String criaFatura(List- itens) { StringBuilder fatura = new StringBuilder(itens.size() * 80); // pré-alocação for (Item item : itens) { fatura.append(item.toString()); } return fatura.toString(); }
3. مقارنة الأداء:
حتى بعد التحسينات في Java 6 لتحسين المشغل، يظل استخدام StringBuilder أكثر كفاءة. على جهاز اختبار، كان استخدام StringBuilder أسرع بـ 6.5 مرة من المشغل في سيناريو يحتوي على 100 عنصر.
مثال على التحسين دون التخصيص المسبق:
public String criaFatura(List- itens) { StringBuilder fatura = new StringBuilder(); // sem pré-alocação for (Item item : itens) { fatura.append(item.toString()); } return fatura.toString(); }
4. المغزى من القصة:
لا تستخدمه لتسلسل العديد من السلاسل. سرعان ما يصبح الأداء غير مقبول مع تزايد عدد التسلسلات.
استخدم StringBuilder.append أو البدائل مثل صفائف الأحرف للكميات الكبيرة من التسلسلات.
5. البدائل الأخرى:
بالإضافة إلى StringBuilder، قد تفكر في استخدام مصفوفات الأحرف للمعالجة واسعة النطاق أو لدمج السلاسل بشكل أكثر كفاءة، خاصة عند الحاجة إلى تحكم أفضل في الأداء.
خاتمة:
استخدم StringBuilder لتسلسل السلاسل بكفاءة.
تجنب استخدام العامل في الحلقات أو لأحجام كبيرة من السلاسل، حيث يتدهور الأداء بشكل ملحوظ مع زيادة عدد التسلسلات.
أمثلة من الكتاب:
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3