الوقت/التاريخ الآن هو الثلاثاء مارس 19, 2024 2:37 am
3 نتيجة بحث عن append
[Java] الفرق بين StringBuffer و StringBuilder فى التعامل مع السلاسل النصية
اهلا بكمعلى الرغم من التشابة الكبير بين الفئة #StringBuffer و الفئة #StringBuilder فى التعامل مع السلاسل النصية فى الجافا الا ان هناك فروق جوهرية بينهما على النحو التالى :
1_الفئة #StringBuffer متزامنة synchronized وهذا يعني أنه اذا كان هناك أكثر من مسار thread لا يمكن استدعاء أساليب الفئة StringBuffer في وقت واحد ....فى حين أن الفئة #StringBuilder غير متزامنة non-synchronized و بالتالى فانة يمكن إنشاء اكثر من مسار thread لاستدعاء أساليب الفئة #StringBuilder في وقت واحد.
2_ الفئة #StringBuilder أكثر كفاءة فى التعامل مع السلاسل النصية من الفئة #StringBuffer.
أمثلة للتوضيح :
المثال التالى يوضح كفائة الفئتين فى التعامل مع السلاسل النصية حيث يقوم البرنامج بعمل حلقة تكرارية من 1 الى 10 الف دورة ومن ثم الحاق الكلمة Tpoint من خلال الاسلوب #append للفئة #StringBuffer و الفئة #StringBuilder ...ثم حساب الزمن المستغرق لكل فئة فى عملية الالحاق :
- الكود:
public class ConcatTest{
public static void main(String[] args){
long startTime = System.currentTimeMillis();
StringBuffer sb = new StringBuffer("Java");
for (int i=0; i<10000; i++){
sb.append("Tpoint");
}
System.out.println("Time taken by StringBuffer: " + (System.currentTimeMillis() - startTime) + "ms");
startTime = System.currentTimeMillis();
StringBuilder sb2 = new StringBuilder("Java");
for (int i=0; i<10000; i++){
sb2.append("Tpoint");
}
System.out.println("Time taken by StringBuilder: " + (System.currentTimeMillis() - startTime) + "ms");
}
}
المخرجات :
Time taken by StringBuffer: 16ms
Time taken by StringBuilder: 0ms
يلاحظ من عملية الاخراج أن الفئة #StringBuilder أكثر فلم تستغرق اى وقت يذكر لعملية الالحاق اعلا فى حين أن الفئة #StringBuffer أستغرقت حوالى 16 ميلى ثانية لنفس العملية
تحياتى
- في الخميس يناير 24, 2019 9:01 am
- ابحث في: أساسيات اللغة Java Basics
- موضوع: [Java] الفرق بين StringBuffer و StringBuilder فى التعامل مع السلاسل النصية
- المساهمات: 0
- مشاهدة: 1594
[Java] التعامل مع الفئة Java StringBuilder
أهلا بكم_الفئة Java StringBuilder
هى إحدى الفئات التى توفرها لغة الجافا منذ الاصدار JDK 1.5 للتعامل مع مع سلسلة نصية قابلة للتغيير و التعديل بطريقة حيوية من (إلحاق، وإدراج، وحذف وتعديل وغيرها) فهى تشبة الى حد كبير الفئة StringBuffer التى تحدثنا عليها فى مقال سابق وربما يكون الفرق الوحيد بينهما أن الفئة #StringBuilder متزامنة synchronized فى حين أن الفئة #StringBuffer غير متزامنة non-synchronized
_مشيدات الفئة StringBuilder
اهم ثلاث مشيدات الفئة #StringBuilder التى يمكن استخدامها لانشاء و التعامل مع النصوص من خلال تلك الفئة على النحو التالى :
1_المشيد الاول :
- الكود:
StringBuilder()
ينشىء مخزن مؤقت فارغ لسلسلة نصية مع السعة الأولية لـ 16حرف
2_ المشيد الثاني :
- الكود:
StringBuilder(String str)
ينشىء مخزن مؤقت لسلسلة نصية بقيمة السلسة المحددة
3_المشيد الثالث :
- الكود:
StringBuilder(int length)
ينشىء مخزن فارع مؤقت لسلسلة نصية مع السعة المحددة كطول
طرق و دوال الفئة StringBuilder
تحتوي الفئة #StringBuilder على العديد من الطرق و الدوال التى تساعدنا فى التعامل مع سلاسل البيانات من تعديل و تغير و الحاق و خلافة و ذلك على النحو التالى :
1_الطريقة #append
تقوم تلك الطريقة بإلحاق قيمة نصية الى المخزن الموقت #StringBuilder ....مثال : الحاق كلمة #java الى الكلمة #Hello على النحو التالى :
- الكود:
class StringBuilderExample{
public static void main(String args[]){
StringBuilder sb=new StringBuilder("Hello ");
sb.append("Java");
System.out.println(sb);
}
}
المخرجات :
Hello Java
2_ الطريقة #insert
تقوم تلك الطريقة بادراج قيمة نصية للمخزن الموقت StringBuilder#r مع تحديد موضع الادراج ... المثال التالى يوضح كيفية ادراج الكلمة #Java بعد الحرف الاول للقيمة المخزنة فى #StringBuilder :
- الكود:
class StringBuilderExample2{
public static void main(String args[]){
StringBuilder sb=new StringBuilder("Hello ");
sb.insert(1,"Java");
System.out.println(sb);
}
}
المخرجات :
HJavaello
3_الطريقة #replace
تقوم تلك الطريقة باستبدال القيمة النصية بالمخزن #StringBuilder بالقيمة الحالية او المعطاة اليها و يتم ذلك من ذلك تحديد موضع الاستبدال و عدد الاحرف التى سيتم اسبدالها من القيمة #StringBuilder ....المثال التالى يوضح الفكرة :
- الكود:
class StringBuilderExample3{
public static void main(String args[]){
StringBuilder sb=new StringBuilder("Hello");
sb.replace(1,3,"Java");
System.out.println(sb);
}
}
المخرجات :يمكنك ملاحظة أن عملية الاستبدال تمت بعد الحرف الاول وتم استبدال عدد 3 احرف من الكلمة الاصلية #Hello بالكلمة Java
HJavalo
4_الطريقة #delete
تقوم تلك الطريقة بحذف القيمة النصية بالمخزن #StringBuilder و يمكن تحديد موضع عملية الحذف وايضا عدد ما يتم حذفة ...المثال التالى يوضح الفكرة :
- الكود:
class StringBuilderExample4{
public static void main(String args[]){
StringBuilder sb=new StringBuilder("Hello");
sb.delete(1,3);
System.out.println(sb);
}
}
المخرجات :
Ho
5_ الطريقة #reverse
تقوم تلك الطريقة بعكس السلسة النصية الحالية المخزنة فى #StringBuilder ....مثال يوضح الفكرة
- الكود:
class StringBuilderExample5{
public static void main(String args[]){
StringBuilder sb=new StringBuilder("Hello");
sb.reverse();
System.out.println(sb);//prints olleH
}
}
المخرجات :
olleH
6_ الطريقة #capacity
تقوم تلك الطريقة بارجاع سعة المخزن #StringBuilder ...مثال توضيحيى :
- الكود:
class StringBuilderExample6{
public static void main(String args[]){
StringBuilder sb=new StringBuilder();
System.out.println(sb.capacity());//default 16
sb.append("Hello");
System.out.println(sb.capacity());//now 16
sb.append("java is my favourite language");
System.out.println(sb.capacity());//now (16*2)+2=34 i.e (oldcapacity*2)+2
}
}
المخرجات :
16
16
34
7_ الطريقة #ensureCapacity
تضمن طريقة #ensureCapacity أن السعة المحددة هي الحد الأدنى للسعة الحالية. أما إذا كان أكبر من السعة الحالية ، فإنه يزيد السعة بواسطة (oldcapacity * 2) +2. على سبيل المثال ، إذا كانت سعتك الحالية 16 ، فسوف تكون (16 * 2) + 2 = 34.
- الكود:
class StringBuilderExample7{
public static void main(String args[]){
StringBuilder sb=new StringBuilder();
System.out.println(sb.capacity());//default 16
sb.append("Hello");
System.out.println(sb.capacity());//now 16
sb.append("java is my favourite language");
System.out.println(sb.capacity());//now (16*2)+2=34 i.e (oldcapacity*2)+2
sb.ensureCapacity(10);//now no change
System.out.println(sb.capacity());//now 34
sb.ensureCapacity(50);//now (34*2)+2
System.out.println(sb.capacity());//now 70
}
}
تحياتى لك
- في الخميس يناير 24, 2019 8:21 am
- ابحث في: أساسيات اللغة Java Basics
- موضوع: [Java] التعامل مع الفئة Java StringBuilder
- المساهمات: 1
- مشاهدة: 939
[Java] التعامل مع الفئة Java StringBuffer
أهلا بكم_الفئة Java StringBuffer
هى إحدى الفئات التى توفرها لغة الجافا للتعامل مع النصوص تشبة الى حد كبير الفئة #string إلا أن الفئة #StringBuffer تسخدم لإنشاء و التعامل مع سلسلة نصية قابلة للتغيير و التعديل بطريقة حيوية من (إلحاق، وإدراج، وحذف وتعديل وغيرها)
_مشيدات الفئة StringBuffer
اهم ثلاث مشيدات الفئة #StringBuffer التى يمكن استخدامها لانشاء و التعامل مع النصوص من خلال تلك الفئة على النحو التالى :
1_المشيد الاول :
- الكود:
StringBuffer()
ينشىء مخزن مؤقت فارغ لسلسلة نصية مع السعة الأولية لـ 16حرف
2_ المشيد الثاني :
- الكود:
StringBuffer(String str)
ينشىء مخزن مؤقت لسلسلة نصية بقيمة السلسة المحددة
3_المشيد الثالث :
- الكود:
StringBuffer(int capacity)
ينشىء مخزن فارع مؤقت لسلسلة نصية مع السعة المحددة كطول
طرق و دوال الفئة StringBuffer
تحتوي الفئة #StringBuffer على العديد من الطرق و الدوال التى تساعدنا فى التعامل مع سلاسل البيانات من تعديل و تغير و الحاق و خلافة و ذلك على النحو التالى :
1_الطريقة #append
تقوم تلك الطريقة بإلحاق قيمة نصية الى المخزن الموقت #StringBuffer ....مثال : الحاق كلمة #java الى الكلمة #Hello على النحو التالى :
- الكود:
class StringBufferExample{
public static void main(String args[]){
StringBuffer sb=new StringBuffer("Hello ");
sb.append("Java");
System.out.println(sb);
}
}
المخرجات :
Hello Java
2_ الطريقة #insert
تقوم تلك الطريقة بادراج قيمة نصية للمخزن الموقت StringBuffe#r مع تحديد موضع الادراج ... المثال التالى يوضح كيفية ادراج الكلمة #Java بعد الحرف الاول للقيمة المخزنة فى #StringBuffer :
- الكود:
class StringBufferExample2{
public static void main(String args[]){
StringBuffer sb=new StringBuffer("Hello ");
sb.insert(1,"Java");
System.out.println(sb);
}
}
المخرجات :
HJavaello
3_الطريقة #replace
تقوم تلك الطريقة باستبدال القيمة النصية بالمخزن #StringBuffer بالقيمة الحالية او المعطاة اليها و يتم ذلك من ذلك تحديد موضع الاستبدال و عدد الاحرف التى سيتم اسبدالها من القيمة #StringBuffer ....المثال التالى يوضح الفكرة :
- الكود:
class StringBufferExample3{
public static void main(String args[]){
StringBuffer sb=new StringBuffer("Hello");
sb.replace(1,3,"Java");
System.out.println(sb);HJavalo
}
}
المخرجات :يمكنك ملاحظة أن عملية الاستبدال تمت بعد الحرف الاول وتم استبدال عدد 3 احرف من الكلمة الاصلية #Hello بالكلمة Java
HJavalo
4_الطريقة #delete
تقوم تلك الطريقة بحذف القيمة النصية بالمخزن #StringBuffer و يمكن تحديد موضع عملية الحذف وايضا عدد ما يتم حذفة ...المثال التالى يوضح الفكرة :
- الكود:
class StringBufferExample4{
public static void main(String args[]){
StringBuffer sb=new StringBuffer("Hello");
sb.delete(1,3);
System.out.println(sb);
}
}
المخرجات :
Ho
5_ الطريقة #reverse
تقوم تلك الطريقة بعكس السلسة النصية الحالية المخزنة فى #StringBuffer ....مثال يوضح الفكرة
- الكود:
class StringBufferExample5{
public static void main(String args[]){
StringBuffer sb=new StringBuffer("Hello");
sb.reverse();
System.out.println(sb);
}
}
المخرجات :
olleH
6_ الطريقة #capacity
تقوم تلك الطريقة بارجاع سعة المخزن #StringBuffer ...مثال توضيحيى :
- الكود:
class StringBufferExample6{
public static void main(String args[]){
StringBuffer sb=new StringBuffer();
System.out.println(sb.capacity());//default 16
sb.append("Hello");
System.out.println(sb.capacity());//now 16
sb.append("java is my favourite language");
System.out.println(sb.capacity());
}
}
المخرجات :
16
16
34
7_ الطريقة #ensureCapacity
تضمن طريقة #ensureCapacity أن السعة المحددة هي الحد الأدنى للسعة الحالية. أما إذا كان أكبر من السعة الحالية ، فإنه يزيد السعة بواسطة (oldcapacity * 2) +2. على سبيل المثال ، إذا كانت سعتك الحالية 16 ، فسوف تكون (16 * 2) + 2 = 34.
- الكود:
class StringBufferExample7{
public static void main(String args[]){
StringBuffer sb=new StringBuffer();
System.out.println(sb.capacity());//default 16
sb.append("Hello");
System.out.println(sb.capacity());//now 16
sb.append("java is my favourite language");
System.out.println(sb.capacity());//now (16*2)+2=34 i.e (oldcapacity*2)+2
sb.ensureCapacity(10);//now no change
System.out.println(sb.capacity());//now 34
sb.ensureCapacity(50);//now (34*2)+2
System.out.println(sb.capacity());//now 70
}
}
تحياتى لك
- في الخميس يناير 24, 2019 7:00 am
- ابحث في: أساسيات اللغة Java Basics
- موضوع: [Java] التعامل مع الفئة Java StringBuffer
- المساهمات: 1
- مشاهدة: 1320
أمس في 12:41 am من طرف marketing118
» شركة تنظيف ستائر بالرياض
الأحد مارس 17, 2024 10:46 pm من طرف moslema_r
» خيام ملكيه من الداخل
الأحد مارس 17, 2024 8:13 pm من طرف marketing118
» شركة نقل عفش بالطائف
الأحد مارس 17, 2024 6:34 pm من طرف marketing118
» كهربائي منازل بالرياض
الأحد مارس 17, 2024 1:52 pm من طرف رانيا حماد
» افضل شركة نقل عفش بالرياض نقل باكستاني 40% خصم | موقع الانوار
الأحد مارس 17, 2024 1:25 pm من طرف رانيا حماد
» افضل معلم جبس بالرياض تركيب جبس بورد بالرياض 20% خصم اتصل الآن
الأحد مارس 17, 2024 1:09 pm من طرف رانيا حماد
» شراء اثاث مستعمل بالكويت بخصم 30%
الأحد مارس 17, 2024 12:54 pm من طرف رانيا حماد
» افضل فني كهربائي منازل بالرياض جودة 100% | اتصل الآن
الأحد مارس 17, 2024 12:36 pm من طرف رانيا حماد
» أفضل فني سباك بالرياض ممتاز بالرياض | اتصل الآن
الأحد مارس 17, 2024 12:25 pm من طرف رانيا حماد