مصفوفة جافا
المصفوفة عبارة عن مجموعة من البيانات من نفس نوع البيانات. تدعم Java في الغالب المصفوفات. كل وحدة أساسية في مصفوفة أحادية البعد هي بيانات من نوع بيانات أساسي مصفوفة أحادية البعد، وهكذا، كل وحدة أساسية لمصفوفة ذات بعد n هي مصفوفة ذات بعد n من مصفوفات n-1. يستخدم ما يلي مصفوفة أحادية البعد كمثال لتوضيح استخدام مصفوفات Java.
1. إعلان المصفوفة
إعلانات المصفوفة لها الشكلين التاليين (مواضع الأقواس المربعة مختلفة):
int arr[];int[] arr2;
2. تهيئة المصفوفة
هناك أيضًا شكلان لتهيئة المصفوفة، كما يلي (باستخدام الجديد أو عدم استخدام الجديد):
int arr[] = new int[]{1, 3, 5, 7, 9}; int[] arr2 = {2, 4, 6, 8, 10};
3. اجتياز المصفوفة
يمكنك استخدام for/foreach لاجتياز المصفوفة، كما يلي:
public static void main(String[] args) { int arr[] = new int[]{1, 3, 5, 7,9}; int[] arr2 = {2, 4, 6, 8, 10}; (int i = 0; i < arr.length; ++i) { System.out.print(arr[i] + "/t"); } for (int x: arr2) { System.out.print(x + "/t"); // 2 4 6 8 10 } }
4. Arrays.fill() يملأ المصفوفة
لاستخدام الأساليب الثابتة لفئة Arrays، تحتاج إلى استيراد الحزمة java.util.Arrays، التي تحدد العديد من الأساليب المحملة بشكل زائد.
ملء الفراغ (int[] a، int val) ملء الكل
ملء الفراغ (int [] a، int fromIndex، int toIndex، int val) يملأ العنصر في الفهرس المحدد
int[] arr3 = new int[5]; for (int x: arr3) { System.out.print(x + "/t"); // 0 0 0 0 تمت تهيئة الكل إلى 0 } System.out.println (); 10 10 املأ الكل حتى 10 } System.out.println(); // 10 8 8 10 10 املأ الفهرس المحدد } System.out.println();
5. يقوم Arrays.sort() بفرز المصفوفة
فرز باطلة (int [] أ) فرز الكل
فرز الفراغ (int [] a، int fromIndex، int toIndex) يقوم بفرز العناصر في الفهرس المحدد
int[] arr4 = {3, 7, 2, 1, 9}; Arrays.sort(arr4); for (int x: arr4) { System.out.print(x + "/t"); 3 7 9 } System.out.println(); int[] arr5 = {3, 7, 2, 1, 9}; 1, 3); for (int x: arr5) { System.out.print(x + "/t"); // 3 2 7 1 9 } System.out.println();
6. يقوم Arrays.copyOf() بنسخ المصفوفة
int[] CopyOf(int[] original, int newLength) ينسخ المصفوفة ويحدد طول المصفوفة الجديد
int[] CopyOfRange(int[] original, int from, int to) ينسخ مصفوفة، ويحدد فهرس المصفوفة الأصلية المنسوخة
int[] arr6 = {1, 2, 3, 4, 5}; int[] arr7 = Arrays.copyOf(arr6, 5); // 1 2 3 4 5 int[] arr8 = Arrays.copyOfRange(arr6, 1) , 3); // 2 3 for (int x: arr7) { System.out.print(x + "/t"); } System.out.println(); for (int x: arr8) { System.out.print(x + "/t" } System.out.println();
سلسلة جافا
نوع سلسلة Java هو فئة السلسلة وفيما يلي وصف لكيفية تشغيل السلاسل.
1. تسلسل السلسلة
يستخدم تسلسل السلسلة الرمز "+"، كما في المثال التالي:
String s = new String("Hello"); String s2 = new String("World"); System.out.println(s + " " + s2);
2. احصل على طول السلسلة
للحصول على طول سلسلة، استخدم str.length()، كما في المثال التالي:
String s3 = new String("Hello Java");
3. احصل على فهرس السلسلة المحددة
للحصول على فهرس سلسلة محددة، استخدم str.indexOf(substr)، str.lastIndexOf(substr)، كما هو موضح في المثال التالي:
String s4 = new String("كيف حالك"); System.out.println(s4.indexOf("o")); // 1 ابحث عن System.out.println(s4.lastIndexOf("o")) من ملف البداية // 9 ابحث من النهاية
4. احصل على الحرف في الفهرس المحدد
للحصول على الحرف في الفهرس المحدد، استخدم str.charAt(index)، كما في المثال التالي:
String s5 = new String("Hello Java");
5. قم بإزالة المسافات من السلاسل
هناك العديد من الطرق لإزالة المسافات في السلسلة. استخدم str.trim() أو str.replaceAll(regex, استبدال). يمكنك أيضًا استخدام فئة StringTokenizer لفصل السلاسل بمسافات. تحتاج إلى استيراد الحزمة java.util. StringTokenizer قبل الاستخدام، المثال التالي:
String s6 = new String("Hello Java"); String s7 = s6.trim(); // إزالة المسافات في بداية السلسلة ونهايتها String s8 = s6.replaceAll(" ", ""); الأحرف جميع المسافات في السلسلة StringTokenizer st = new StringTokenizer(s6, " "); // استخدم المسافات لفصل السلاسل StringBuffer sb = new StringBuffer(); (st.hasMoreTokens()) { sb.append(st.nextToken()) } System.out.println("/"" + s6 + "/"" + "length = " + s6.length()); // "مرحبًا جافا" length = 14 System.out.println("/"" + s7 + "/"" + "length = " + s7.length()); // "مرحبًا Java"length = 10 System.out.println("/"" + s8 + "/"" + "length = " + s8.length()); // "HelloJava" length = 9 System.out.println(" /"" + sb.toString() + "/"" + "length = " + sb.toString(). length()); // "HelloJava" length = 9
6. استبدل السلسلة
يمكن أن تحل السلسلة البديلة محل جميع السلاسل الفرعية أو السلسلة الفرعية الأولى، كما هو موضح في المثال التالي:
String sr = new String("abc abd bcd"); String sr2 = sr.replace("ab", "xx"); // استبدال جميع السلاسل الفرعية String sr3 = sr.replaceFirst("ab", "xx"); // استبدل السلسلة الأولى System.out.println(sr2); // "xxc xxd bcd" System.out.println(sr3); "xxc بنك التنمية الآسيوي بي سي دي"
7. الحكم الخيطي
هناك العديد من المواقف لمساواة السلسلة، مثل مساواة محتوى السلسلة، سواء تجاهل الحالة، أو مساواة عنوان الذاكرة، أو بداية السلسلة أو الحكم النهائي، وما إلى ذلك، كما هو موضح أدناه:
String se = new String("الصيف حار جدًا"); String se1 = new String("الصيف حار جدًا"); String se2 = new String("الصيف حار جدًا"); .println(se == se1); // false يقارن الذاكرة بدلاً من محتوى السلسلة System.out.println(se == se3); // true System.out.println(se.equals(se1)); مقارنة محتويات السلسلة System.out.println(se.equals(se2)); // false System.out.println(se.equalsIgnoreCase(se2)); // تجاهل صحيح System.out.println(se2.startsWith (" الصيف")); // صحيح يبدأ السلسلة System.out.println(se2.endsWith("cold")); // خطأ ينهي السلسلة
8. تحويل حالة السلسلة
فيما يلي أمثلة لتحويل حالة السلسلة:
String sc = new String("hello WORLD"); String scl = sc.toLowerCase(); // helloworld يتم تحويله إلى أحرف صغيرة String scu = sc.toUpperCase(); // HELLO WORLD يتم تحويله إلى أحرف كبيرة System.out. println(scl + "" + scu);
9. فصل السلسلة
محددات السلسلة هي كما يلي:
String ss = new String("abc,def,g,h"); String[] ss2 = ss.split("،); // منفصل بفواصل for (String x: ss2) { System.out.print( x + "/t"); // اي بي سي ديف gh }
10. سلسلة التنسيق
هناك العديد من أشكال تنسيق السلسلة، مثل تنسيق التاريخ، وتنسيق الوقت، والتحويل العشري، وما إلى ذلك. يتطلب استخدام فئة Date حزمة الاستيراد java.util.Date، كما هو موضح في المثال التالي:
Date d = new Date(); // 07 شهر مكون من رقمين System.out.println(String.format("%tH", d)); // 16 مكون من رقمين على مدار 24 ساعة system.out.println(String.format("%x", 256)); // 100 سداسي عشري
11. مقارنة فئات String وStringBuffer وStringBuilder
السلسلة: كائن سلسلة ثابت وغير قابل للتغيير. عند تغيير محتوى المتغير، يتم إنشاء كائن سلسلة جديد بالفعل. عندما يتم تغيير محتوى المتغير عدة مرات وبشكل متكرر، سيكون له تأثير على أداء النظام، خاصة التسبب في بدء تشغيل GC , سرعة البرنامج سوف تصبح بطيئة جدا .
StringBuffer: متغير سلسلة، آمن للخيط. عند تغيير محتوى المتغير، يتم تشغيل نفس الكائن فعليًا، وتكون الكفاءة أعلى من نوع السلسلة.
StringBuilder: متغير سلسلة، متوافق مع StringBuffer، ولكنه غير آمن للخيط. إذا كان ذو خيط واحد، استخدم StringBuilder أولاً، فهو أسرع من StringBuffer.