تعريف واستخدام صفائف Java <br /> إذا كنت ترغب في حفظ مجموعة من البيانات من نفس النوع ، يمكنك استخدام صفيف.
تعريف الصفيف وتخصيص الذاكرة
هناك جملة لتحديد المصفوفات في جافا:
اكتب arrayname [] ؛
النوع هو نوع البيانات في Java ، بما في ذلك الأنواع الأساسية وأنواع الجمع. على سبيل المثال:
int demoarray [] ؛ int [] demoarray ؛
لا يوجد فرق بين هذين النموذجين ، وتأثير الاستخدام هو نفسه بالضبط.
على عكس C و C ++ ، لا تخصص Java ذاكرة لعناصر الصفيف عند تحديد المصفوفات ، لذلك ليست هناك حاجة لتحديد عدد عناصر الصفيف ، أي طول الصفيف. علاوة على ذلك ، بالنسبة للمصفوفة المذكورة أعلاه ، لا يمكن للوصول إلى أي من عناصرها.
arrayName = نوع جديد [صفائف] ؛
حيث يكون التصنيع هو طول الصفيف والنوع هو نوع الصفيف. يحب:
demoarray = new int [3] ؛
تخصيص مساحة الذاكرة التي تشغلها 3 أعداد صحيحة int إلى مجموعة عدد صحيح.
عادة ، يمكنك تخصيص مساحة أثناء التعريف ، مع بناء الجملة على النحو التالي:
اكتب arrayName [] = نوع جديد [صفيف] ؛
على سبيل المثال:
int demoarray [] = new int [3] ؛
تهيئة المصفوفات
يمكنك تهيئة (التهيئة الثابتة) أثناء إعلان الصفيف ، أو يمكنك تهيئته بعد الإعلان (التهيئة الديناميكية). على سبيل المثال:
// تهيئة ثابتة // أثناء التهيئة الثابتة ، فإنها تخصص مساحة لعناصر صفيف وتعيين القيمة intarray [] = {1،2،3،4} ؛ String stringarray [] = {"WeChatyuan" ، "http: // // www .weixueyuan.net "،" جميع لغات البرمجة هي نمور الورق "} ؛ // التهيئة الديناميكية العائمة العائمة [] = تعويم جديد [3] ؛ Floatarray [0] = 1.0f ؛ floatarray [1] = 132.63f ؛ floatarray [2] = 100f ؛مرجع الصفيف
يمكن الرجوع إلى صفيف من قبل Subcript:
arrayName [index] ؛
على عكس C و C ++ ، يجب على Java إجراء عمليات فحص خارج الحدود على عناصر الصفيف لضمان الأمن.
كل صفيف له سمة طول للإشارة إلى طولها ، على سبيل المثال ، intarray.length يحدد طول المصفوفة intarray.
[مثال] اكتب قطعة من الكود تتطلب إدخال أي أعداد صحيحة 5 وإخراج مجموعها.
استيراد Java.Util. إعطاء عناصر Array System.out.print ("الرجاء إدخال" + len + "، مفصولة بالمساحات:") ؛ ) {intarray [i] = Sc.Nextint () ؛ ("مجموع جميع عناصر الصفيف هو:" + المجموع) ؛ نتائج التشغيل:
الرجاء إدخال 5 أعداد صحيحة ، مفصولة بالمساحات: 10 20 15 25 50
مجموع جميع عناصر الصفيف هو: 120
تجارة الصفيف
في التطور الفعلي ، غالبًا ما يكون من الضروري اجتياز الصفيف للحصول على كل عنصر في الصفيف. أسهل طريقة للتفكير هي حلقة ، على سبيل المثال:
int arraydemo [] = {1 ، 2 ، 4 ، 7 ، 9 ، 192 ، 100} ؛ for (int i = 0 ، len = arraydemo ] + "،") ؛}
نتيجة الإخراج:
1 ، 2 ، 4 ، 7 ، 9 ، 192 ، 100 ،
ومع ذلك ، توفر Java "إصدارًا محسّنًا" للحلقة ، والتي تستخدم خصيصًا لاجتياز المصفوفات ، مع بناء الجملة على النحو التالي:
لـ (arraytype varname: arrayName) {// بعض التعليمات البرمجية}
ArrayType هو نوع صفيف (أيضًا نوع عنصر الصفيف) ؛
تتم كل حلقة ، يتم الحصول على قيمة العنصر التالي في الصفيف وحفظها إلى متغير varname حتى نهاية الصفيف. أي أن قيمة varname في الحلقة الأولى هي العنصر 0 ، والحلقة الثانية هي العنصر الأول ... على سبيل المثال:
int arraydemo [] = {1 ، 2 ، 4 ، 7 ، 9 ، 192 ، 100} ؛ لـ (int x: arraydemo) {system.out.println (x + "،") ؛}
نتيجة الإخراج هي نفسها أعلاه.
وتسمى هذه النسخة المحسّنة لـ For Loop أيضًا "Foreach Loop" ، وهي نسخة مبسطة خاصة من عبارات الحلقة العادية. يمكن إعادة كتابة جميع حلقات foreach إلى حلقات.
ومع ذلك ، إذا كنت ترغب في استخدام فهرس صفيف ، فإن المحسّن للحلقة لا يمكنه القيام بذلك.
صفيف ثنائي الأبعاد
يشبه الإعلان والتهيئة والمرجعية للصفائف ثنائية الأبعاد المصفوفات أحادية البعد:
int intarray [] [] = {{1،2} ، {2،3} ، {4،5}} ؛ int a [] = new int [2] [3] ؛ a [0] [0] = 12 ؛ A [0] [1] = 34 ؛ // ...... A [1] [2] = 93 ؛ في لغة Java ، نظرًا لأن المصفوفات ثنائية الأبعاد تعتبر صفائف من المصفوفات ، فإن مساحة الصفيف لا يتم تخصيصها بشكل مستمر ، وبالتالي فإن حجم كل أبعاد الصفيف ثنائي الأبعاد غير مطلوب ليكون هو نفسه. على سبيل المثال:
int intarray [] [] = {{1،2} ، {2،3} ، {3،4،5}} ؛ int a [] = new int [2] [] int [3] ؛ a [1] = new int [5] ؛ [مثال] احسب منتج اثنين من المصفوفات من خلال صفيف ثنائي الأبعاد.
الطبقة العامة التجريبية {public static void main (string [] args) {// المصفوفة الأولى (التهيئة الديناميكية لمجموعة ثنائية الأبعاد) int a [] = new int [2] [3] ؛ مصفوفة (تهيئة بشكل ثابت صفيف ثنائي الأبعاد) int b [] [] = {{1،5،2،8} ، {5،9،10 ، -3} ، {2،7 ، -5 ، -18}} ؛ // النتيجة مصفوفة int c [] = new int [2] [4] ؛ j ++) a [i] [j] = (i+1) * (j+2) ؛ <4 ؛ [j] ؛ c [i] [j]) ؛ نتائج التشغيل:
25 65 14 -65 50 130 28 -130
بعض التفسيرات:
ما سبق صفيف ثابت. بمجرد إعلان صفيف ثابت ، يتم إصلاح قدرتها ولا يمكن تغييرها. لذلك ، عند الإعلان عن صفيف ، يجب أن تفكر في الحد الأقصى لسعة الصفيف لمنع السعة غير الكافية.
إذا كنت ترغب في تغيير السعة عند تشغيل البرنامج ، فأنت بحاجة إلى استخدام قائمة صفيف (ArrayList ، والمعروفة أيضًا باسم صفيف ديناميكي) أو متجه (متجه).
ويرجع ذلك بالتحديد إلى عيب السعة الثابتة للمصفوفات الثابتة التي لا تستخدم بشكل متكرر في التطوير الفعلي ويتم استبدالها بقائمة ArrayList أو المتجه ، لأنه في التطوير الفعلي ، غالبًا ما يحتاج إلى إضافة أو حذف عناصر إلى الصفيف ، وقدرته ليس من السهل التقدير.
سلسلة جافا (سلسلة)
على السطح ، تكون السلاسل بيانات بين عروض أسعار مزدوجة ، مثل "Weixueyuan" ، "http://www.weixueyuan.net" ، إلخ. في Java ، يمكنك استخدام الطريقة التالية لتحديد سلسلة:
String stringName = "String Content" ؛
على سبيل المثال:
String url = "http://www.weixueyuan.net" ؛ String WebName = "WeChatyuan" ؛
يمكن تسلسل الأوتار من خلال "+".
الطبقة العامة {public static void main (] args) الصف هو " + stuscore ؛ system.out.println (info) ؛}} نتائج التشغيل:
عمر شياو مينغ يبلغ من العمر 17 عامًا وصفته 92.5
تحتوي سلاسل السلاسل على شيء واحد مشترك مع المصفوفات ، وهو ، بعد تهيئةها ، يبقى طولها دون تغيير ويظل محتواها دون تغيير. إذا كنت تريد تغيير قيمتها ، فسيتم إنشاء سلسلة جديدة ، كما هو موضح أدناه:
String str = "Hello" ؛ str += "World!" ؛
هذا التعبير المهمة يشبه إلى حد ما solitaire بسيطة ، إضافة "العالم!" مبدأ التشغيل هو كما يلي: يقوم البرنامج أولاً بإنشاء سلسلة STR1 ويطبق على مساحة في الذاكرة. من المستحيل إلحاق سلسلة جديدة في هذا الوقت لأن طول السلسلة ثابتة بعد تهيئة. إذا كنت ترغب في تغييره ، فيمكنك التخلي عن المساحة الأصلية فقط ، وإعادة تطبيق مساحة الذاكرة التي يمكن أن تستوعب "Hello World!"
في الواقع ، String عبارة عن فئة تحت حزمة Java.lang.
String stringName = سلسلة جديدة ("محتوى السلسلة") ؛
على سبيل المثال:
url url = سلسلة جديدة (http://www.weixueyuan.net) ؛
ومع ذلك ، نظرًا لأن السلسلة شائعة الاستخدام بشكل خاص ، توفر Java بناء جملة مبسط.
سبب آخر لاستخدام بناء الجملة المبسط هو أنه وفقًا لبناء بناء الجملة الموجه للكائنات القياسية ، هناك نفايات كبيرة نسبيًا في استخدام الذاكرة. على سبيل المثال ، سلسلة String = New String ("ABC") ؛
تشغيل السلسلة
هناك العديد من الطرق لتشغيل السلاسل بسهولة.
1) الطول () طريقة
الطول () إرجاع طول السلسلة ، على سبيل المثال:
String str1 = "weixueyuan" ؛ string str2 = "weixueyuan" ؛ system.out.println ("طول str1 هو" + str1.length ()) ؛ system.out.println ("طول ST R2 هو" + str2.length ()) ؛
نتيجة الإخراج:
طول STR1 هو 3 طول STR2 هو 10
يمكن أن نرى أن طول كل حرف هو 1 ، سواء كانت رسائل أو أرقام أو أحرف صينية.
2) طريقة charat ()
تتمثل وظيفة طريقة charat () في الحصول على الأحرف المحددة في السلسلة وفقًا لقيمة الفهرس. تنص Java على أن قيمة الفهرس للحرف الأول في السلسلة هي 0 ، وقيمة الفهرس للشخصية الثانية هي 1 ، وهكذا. على سبيل المثال:
String str = "123456789" ؛ system.out.println (str.charat (0) + "" + str.charat (5) + "" + str.charat (8)) ؛
نتيجة الإخراج:
1 6 9
3) يحتوي على () الطريقة
يتم استخدام طريقة تحتوي على () لاكتشاف ما إذا كانت السلسلة تحتوي على فرعية ، على سبيل المثال:
String str = "weixueyuan" ؛ system.out.println (str.contains ("yuan")) ؛
نتيجة الإخراج:
حقيقي
4) استبدال () الطريقة
استبدال السلسلة ، المستخدم لاستبدال جميع الأساسيات المحددة في سلسلة ، على سبيل المثال:
String str1 = "عنوان URL لـ weixueyuan هو www.weixueyuan.net!" ؛ String str2 = str1.replace ("weixueyuan" ، "weixueyuan") ؛ system.out.println (str1) ؛ syste m.out.println (str2 str2 (str2 ) ؛
نتيجة الإخراج:
عنوان URL لـ Weixueyuan هو www.weixueyuan.net! عنوان URL of Weixueyuan هو www.weixueyuan.net!
ملاحظة: لا تغير طريقة استبدال () السلسلة الأصلية ، ولكنها تنشئ سلسلة جديدة.
5) طريقة الانقسام ()
استخدم السلسلة المحددة كمحدد لتقسيم السلسلة الحالية.
استيراد java.util. المصفوفات.
نتائج التشغيل:
[Wei ، Xue ، Yuan ، جيد]
يسرد ما سبق فقط بعض الطرق شائعة الاستخدام لكائنات السلسلة.