بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
تفاوت بین عملگر + و append و concat در هنگام کار با رشته ها (آموزش)
سلام. دوستان این سه تا تقریبا کار مشابهی انجام میدن ولی از لحاظ مدت زمان اجرایی چطور؟
به مثال زیر توجه کنید:
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
جالب بود (8 سال پیش)
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .