آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

تفاوت بین عملگر + و append و concat در هنگام کار با رشته ها (آموزش)

behnam2000  7 سال پیش  7 سال پیش
+6 0

 

سلام. دوستان این سه تا تقریبا کار مشابهی انجام میدن ولی از لحاظ مدت زمان اجرایی چطور؟

به مثال زیر توجه کنید:

  long now=System.currentTimeMillis();
        String a="yes";
        for(int i=0;i<=10000;i++){
            a = a.concat("yes");
        }
        Log.i("time","concat time:"+(System.currentTimeMillis()-now)+"ms"+"  str:"+a.length());
        now=System.currentTimeMillis();
        a="yes";
        for(int i=0;i<=10000;i++){
            a = a+"yes";
        }
        Log.i("time","+ time:"+(System.currentTimeMillis()-now)+"ms"+"  str:"+a.length());
        now=System.currentTimeMillis();
        StringBuilder sb = new StringBuilder("yes");
        for(int i=0;i<=10000;i++){
            sb.append("yes");
        }
        Log.i("time","append time:"+(System.currentTimeMillis()-now)+"ms"+"  str:"+sb.toString().length());

خروجی: 

 concat time:1601ms  str:30006
+ time:5395ms  str:30006
append time:6ms  str:30006

همانطور که مشاهده می کنید هر سه تا خروجی یکسانی تولید میکنند (البته با توجه به طول رشته) اما از لحاظ مدت زمان اجرای عملیات تفاوت چشم گیری وجود دارد!

  

0 0
جالب بود (7 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .