CodeGym /جاوا بلاگ /Random-SD /جاوا ۾ صفون
John Squirrels
سطح
San Francisco

جاوا ۾ صفون

گروپ ۾ شايع ٿيل
تصور ڪريو ڪيبنٽ هڪ اسٽوريج روم ۾. انهن مان هر هڪ جو پنهنجو نمبر آهي، ۽ انهن مان هر هڪ کي ڪجهه سامان جي شين کي ذخيرو ڪري ٿو. يا هڪ شراب جي فهرست جتي هر قسم جي شراب جو تعداد ڏنل آهي ۽ توهان پنهنجي پيئڻ جو نمبر ڏيڻ سان ترتيب ڏيو ٿا. يا شاگردن جي لسٽ جنهن ۾ ”ايڊمز“ پهرين پوزيشن تي ۽ ”زمر“ آخري نمبر تي آهي. يا هوائي جهاز تي مسافرن جي هڪ فهرست، جن مان هر هڪ کي هڪ نمبر واري سيٽ ڏني وئي آهي. جاوا ۾، arrays اڪثر ڪري استعمال ڪيا ويندا آهن ڪم ڪرڻ لاءِ اهڙين جوڙجڪ سان، يعني هڪجهڙائي واري ڊيٽا جا سيٽ.

ڪوڊ گيم ڪورس ۾ صفون

CodeGym تي، توهان جاوا نحو جي ڳولا جي سطح 7 تي صفن سان ڪم ڪرڻ شروع ڪيو. ٽي سبق انهن لاءِ وقف ڪيا ويا آهن، انهي سان گڏ 8 ڪم مختلف سطحن تي توهان جي صلاحيتن کي مضبوط ڪرڻ لاءِ صفن سان ڪم ڪندي. پر توهان ڪورس دوران ڪيترائي ڀيرا صفن سان منهن ڪندا (خاص طور تي، ايري ڪلاس جاوا ڪليڪشن جي ڳولا ۾ ۽ توهان جي مستقبل جي ڪم جي حصي جي طور تي اڀياس ڪيو ويندو.

هڪ صف ڇا آهي؟

هڪ صف هڪ ڊيٽا جي جوڙجڪ آهي جيڪا ساڳئي قسم جي عناصر کي ذخيرو ڪري ٿي. توھان ان کي نمبر ٿيل سيلز جي ھڪڙي سيٽ جي طور تي سوچي سگھو ٿا. توهان هر سيل ۾ ڪجهه ڊيٽا رکي سگهو ٿا (هڪ ڊيٽا عنصر في سيل). هڪ مخصوص سيل ان جو نمبر استعمال ڪندي رسائي آهي. صف ۾ هڪ عنصر جو نمبر پڻ سڏيو ويندو آهي هڪ انڊيڪس . جاوا ۾، هڪ صف هڪجهڙائي آهي، يعني ان جي سڀني سيلن ۾ ساڳئي قسم جا عنصر شامل آهن. اهڙيءَ طرح، انٽيجرز جي هڪ صف ۾ صرف انٽيجرز ( int )، تارن جي هڪ صف - صرف اسٽرنگ، ۽ ڪتي طبقي جي مثالن جو هڪ صف، جيڪو اسان ٺاهيو آهي، ان ۾ صرف ڪتا شيون شامل هونديون . ٻين لفظن ۾، جاوا اسان کي صف جي پهرين سيل ۾ هڪ انٽيجر، ٻئي ۾ هڪ اسٽرنگ ، ۽ ٽئين ۾ هڪ ڪتو رکڻ نه ڏيندو.جاوا ۾ صفون - 2

هڪ صف جو اعلان

توهان هڪ صف جو اعلان ڪيئن ڪندا؟

ڪنهن به متغير وانگر، جاوا ۾ هڪ صف جو اعلان ڪيو وڃي. اهو ٻن طريقن مان هڪ ۾ ڪري سگهجي ٿو. اهي برابر آهن، پر پهريون طريقو جاوا انداز سان وڌيڪ مطابقت آهي. ٻيو سي ٻولي جو ورثو آهي: ڪيترائي سي پروگرامر جاوا ڏانهن ويا، ۽ انهن جي سهولت لاء هڪ متبادل طريقو رکيو ويو. جدول جاوا ۾ هڪ صف جو اعلان ڪرڻ جا ٻئي طريقا ڏيکاري ٿو:
نه. هڪ صف جو اعلان، جاوا نحو مثال تبصرو
1.
dataType[] arrayName؛

int[] myArray;

Object[] 
arrayOfObjects;
اهو مشورو ڏنو ويو آهي ته هن طريقي سان هڪ صف جو اعلان ڪريو. هي جاوا انداز آهي.
2.
dataType arrayName[]؛

int myArray[];

Object 
arrayOfObjects[];
C/C++ کان وراثت ۾ حاصل ڪيل صفن جي اعلان جو طريقو، جاوا ۾ ڪم ڪري ٿو
ٻنهي صورتن ۾، dataType صف ۾ متغير جو قسم آهي. مثالن ۾، اسان ٻن صفن جو اعلان ڪيو. ھڪڙو ذخيرو ڪندو int s، ۽ ٻيو - Object Objects. اهڙيء طرح، هڪ صف جو اعلان هڪ نالو ۽ قسم آهي (صفن جي عناصر جو قسم). ArrayName صف جو نالو آھي.

هڪ صف ٺاهڻ

توهان هڪ صف ڪيئن ٺاهيندا آهيو؟

ڪنهن ٻئي شئي وانگر، توهان هڪ جاوا ايري ٺاهي سگهو ٿا، يعني نئين آپريٽر کي استعمال ڪندي، ان لاءِ ياداشت ۾ هڪ جڳهه محفوظ ڪريو . اهو ڪيئن ڪيو ويو آهي:

new typeOfArray[length];
جتي typeOfArray صف جو قسم آھي ۽ ڊگھائي آھي ان جي ڊگھائي (يعني سيلن جو تعداد) مڪمل نمبر ( int) جي طور تي بيان ڪيو ويو آھي. پر ياد رکو ته هتي اسان صرف ميموري کي صف لاءِ مختص ڪيو آهي - اسان اعلان ڪيل صف کي ڪنهن به اڳواٽ اعلان ڪيل متغير سان لاڳاپيل نه ڪيو آهي. عام طور تي، هڪ صف جو پهريون اعلان ڪيو ويندو آهي ۽ پوءِ انسٽنٽ ڪيو ويندو آهي، مثال طور:

int[] myArray; // Array declaration
myArray = new int[10]; // Create (allocate memory for) an array of 10 ints
هتي اسان انٽيجرز جو هڪ صف ٺاهيو جنهن کي myArray سڏيو ويندو آهي، مرتب ڪندڙ کي ٻڌايو ته اهو 10 سيلن تي مشتمل آهي (جن مان هر هڪ انٽيجر تي مشتمل هوندو). جڏهن ته، اهو تمام گهڻو عام آهي هيٺين مختصر نحو کي استعمال ڪرڻ لاءِ هڪ صف ٺاهڻ لاءِ جڏهن اهو اعلان ڪيو وڃي ٿو:

int[] myArray = new int [10]; // Declare the array and allocate memory "in one blow"
مهرباني ڪري نوٽ ڪريو:نئين آپريٽر کي استعمال ڪندي هڪ صف پيدا ٿيڻ کان پوء ، ان جي سيلز ۾ ڊفالٽ قدر شامل آهن. عددي قسمن لاءِ (جيئن اسان جي مثال ۾)، ڊفالٽ قدر 0 آھي، بوليان قسم لاءِ، اھو غلط آھي ، ۽ حوالن جي قسمن لاءِ، اھو آھي null . اهڙيء طرح، هن بيان تي عمل ڪرڻ کان پوء

int[] myArray = new int[10];
اسان کي ڏهن عددن جو هڪ صف ملي ٿو ۽، جيستائين پروگرام قدرن کي تبديل ڪرڻ لاءِ ڪجهه نٿو ڪري، هر سيل تي مشتمل آهي 0.

توھان مضمون ۾ arrays بابت وڌيڪ معلومات حاصل ڪري سگھو ٿا " Arrays بابت ڪجھ "

جاوا ۾ صف جي ڊيگهه

جيئن اسان مٿي چيو آهي، هڪ صف جي ڊيگهه عناصر جو تعداد آهي جنهن کي ترتيب ڏيڻ لاء ترتيب ٺهيل آهي. هڪ صف جي ڊگھائي ان جي ٺهڻ کان پوء تبديل نه ٿي ڪري سگھجي. مهرباني ڪري نوٽ ڪريوجاوا ۾ صفر کان شروع ٿيندڙ صفن جا عنصر شمار ڪيا ويا آهن. اهڙيءَ طرح، جيڪڏهن اسان وٽ 10 عنصرن جو هڪ صف آهي، ته پوءِ پهرين عنصر جو انڊيڪس 0 آهي ۽ آخري عنصر جو انڊيڪس 9 آهي. توهان ڊانٿجاوا ۾ صفون - 3 ويريبل استعمال ڪندي صف جي ڊيگهه حاصل ڪري سگهو ٿا . مثال طور:

int[] myArray = new int[10]; // Create an int array for 10 elements and name it myArray
System.out.println(myArray.length); // Display the array's length, i.e. the number of elements we can put into the array
پيداوار:

10

هڪ صف کي شروع ڪرڻ ۽ ان جي عناصر تائين رسائي

هاڻي اسان ڄاڻون ٿا ته جاوا ۾ هڪ صف ڪيئن ٺاهيو. اهو عمل اسان کي خالي صف نه، پر ڊفالٽ قدرن سان ڀريل هڪ صف حاصل ڪري ٿو. مثال طور، هڪ int array لاءِ، هي 0 آهي، ۽ جيڪڏهن اسان وٽ ڪنهن به حوالن جي قسم جو هڪ صف آهي، ته پوءِ هر سيل ۾ ڊفالٽ null آهي . اسان ان جي انڊيڪس ذريعي هڪ سري عنصر تائين رسائي ڪريون ٿا (مثال طور، ان جي قيمت مقرر ڪرڻ، ان کي اسڪرين تي ڏيکاري، يا ان سان ڪجهه آپريشن ڪرڻ) صف جي شروعات مخصوص قدرن سان هڪ صف ڀرڻ جو عمل آهي (ڊفالٽ کان سواءِ). مثال: اچو ته 4 موسمن لاءِ اسٽرنگ ايري ٺاھيون ۽ ان کي موسمن جي نالن سان ڀريون.

String[] seasons = new String[4]; /* Declare and create an array. Java allocates memory for an array of 4 strings, and each cell is set to null (since String is a reference type) */ 

seasons[0] = "Winter"; /* We set the first cell, i.e. the cell with index zero, to "Winter". Here we access the zeroth element of the array and write a specific value to it. */ 
seasons[1] = "Spring"; // We follow a similar procedure for the cell with index 1 (the second cell)
seasons[2] = "Summer"; // ... index 2
seasons[3] = "Autumn"; // and finally, index 3
هاڻي موسمن جا نالا اسان جي صف جي چئن سيلن ڏانهن لکيل آهن. اسان صف کي مختلف انداز ۾ شروع ڪري سگهون ٿا، اعلان ۽ شروعات کي گڏ ڪندي:

String[] seasons = new String[] {"Winter", "Spring", "Summer", "Autumn"};
وڌيڪ ڇا آهي، نئين آپريٽر کي ختم ڪري سگهجي ٿو:

String[] seasons = {"Winter", "Spring", "Summer", "Autumn"};

توهان جاوا ۾ اسڪرين تي هڪ صف ڪيئن ڏيکاريندا آهيو؟

توهان اسڪرين تي صف عناصر ڏيکاري سگهو ٿا (يعني ڪنسول تي) لوپ لاء استعمال ڪندي . ٻيو، هڪ صف کي ظاهر ڪرڻ جو مختصر طريقو پيراگراف ۾ بحث ڪيو ويندو جنهن جو عنوان آهي " صفن سان ڪم ڪرڻ لاء مفيد طريقا ". ساڳئي وقت ۾، هن مثال تي هڪ نظر وٺو جتي هڪ صف ڏيکاريل آهي لوپ استعمال ڪندي:

String[] seasons = new String {"Winter", "Spring", "Summer", "Autumn"}; 
for (int i = 0; i < 4; i++) {
System.out.println(seasons[i]); 
}
پروگرام ھيٺ ڏنل ڏيکاريندو:

Winter 
Spring 
Summer 
Autumn

جاوا ۾ هڪ طرفي ۽ گهڻ جہتي صفون

پر ڇا جيڪڏهن اسان انگن، تارن، يا ٻين شين جي هڪ صف نه، بلڪه صفن جي هڪ صف ٺاهڻ چاهيون ٿا؟ جاوا توهان کي اهو ڪرڻ جي اجازت ڏئي ٿي. صف جي قسم جنهن سان اسان اڳ ۾ ئي واقف آهيون ( int[] myArray = new int[8] ) هڪ-dimensional array طور سڃاتو وڃي ٿو. پر صفن جي هڪ صف کي ٻه طرفي صف سڏيو ويندو آهي. اهو هڪ ٽيبل وانگر آهي جنهن ۾ هڪ قطار نمبر ۽ هڪ ڪالمن نمبر آهي. يا، جيڪڏهن توهان لڪير جي الجبرا جي بنياديات کي سکيو آهي، ته توهان ان کي ميٽرڪس سمجهي سگهو ٿا. جاوا ۾ صفون - 4ڇو اسان کي اهڙي arrays جي ضرورت آهي؟ خير، پروگرام ميٽرڪس ۽ جدولن سان گڏو گڏ ٻيون شيون جن جي جوڙجڪ هڪجهڙائي آهي. مثال طور، هڪ شطرنج بورڊ هڪ 8x8 صف جي نمائندگي ڪري سگهجي ٿو. ھڪڙي گھڻائي واري صف جو اعلان ڪيو ويو آھي ۽ ھيٺ ڏنل ٺاھيو ويو آھي:

Int[][] myTwoDimentionalArray = new int[8][8];
هن صف ۾ بلڪل 64 عنصر آهن: myTwoDimentionalArray[0][0] , myTwoDimentionalArray[0][1] , myTwoDimentionalArray[1][0] , myTwoDimentionalArray[1][1] ۽ ائين ئي myTwoDimentionalArray[7][7] . پوءِ جيڪڏھن اسان ان کي استعمال ڪريون ٿا شطرنج جي تختي جي نمائندگي ڪرڻ لاءِ، ته پوءِ A1 جو تعلق myTwoDimentionalArray[0][0] سان آھي ۽ E2 جو تعلق آھي myTwoDimentionalArray[4][1] . پر اسان ان کي ڪيترو پري ڪري سگهون ٿا؟ جاوا ۾، توھان وضاحت ڪري سگھو ٿا صفن جي ھڪڙي صف... صفن جي صفن جو ھڪڙو صف، وغيره. يقينن، ٽي-dimensional ۽ اعلي-dimensional arrays تمام گهٽ استعمال ٿيندا آهن. اهو چيو ته، توهان استعمال ڪري سگهو ٿا هڪ ٽي-dimensional صف هڪ Rubik جي ڪعب پروگرام ڪرڻ لاء، مثال طور.

arrays سان ڪم ڪرڻ لاء مفيد طريقا

جاوا ۾ arrays سان ڪم ڪرڻ لاءِ java.util.Arrays ڪلاس آھي. عام طور تي، سڀ کان وڌيڪ عام عملن تي انجام ڏنو ويو آهي شروعات (عناصر سان ڀرڻ)، هڪ عنصر ٻيهر حاصل ڪرڻ (انڊيڪس ذريعي)، ترتيب ڏيڻ، ۽ ڳولا. صفن جي ڳولا ۽ ترتيب ڏيڻ ٻئي ڏينهن لاءِ موضوع آهن. هڪ طرف، اهو سٺو عمل آهي ته ڪيترن ئي ڳولها لکڻ ۽ ترتيب ڏيڻ واري الگورتھم پاڻ کي. ٻئي طرف، تمام بهترين الگورتھم اڳ ۾ ئي لاڳو ڪيا ويا آھن ۽ معياري جاوا لائبريرين ۾ شامل آھن، ۽ توھان انھن کي قانوني طور استعمال ڪري سگھو ٿا. هتي هن طبقي ۾ ٽي مفيد طريقا آهن.

ترتيب ترتيب ڏيڻ

void sort(int[] myArray, int fromIndex, int toIndex) طريقو هڪ انٽيجر ايري يا ذيلي سري کي چڙهندڙ ترتيب ۾ ترتيب ڏئي ٿو.

هڪ صف ۾ هڪ عنصر جي ڳولا

int binarySearch(int[] myArray، int fromIndex، int toIndex، int key) . هي طريقو هڪ ترتيب ڏنل myArray array يا subarray ۾ اهم عنصر ڳولي ٿو ، fromIndex کان toIndex تائين . جيڪڏهن شيء ملي ٿي، پوء اهو ان جي انڊيڪس موٽائي ٿو. ٻي صورت ۾، اهو موٽائي ٿو (-fromIndex) -1 .

هڪ صف کي تار ۾ تبديل ڪرڻ

String toString(int[] myArray) طريقو هڪ صف کي اسٽرنگ ۾ بدلائي ٿو. جاوا ۾، arrays کي اوور رائڊ نه ڪندا آھن String() . ان جو مطلب اهو آهي ته جيڪڏهن توهان ڪوشش ڪندا ته هڪ وقت ۾ هڪ عنصر جي بجاءِ هڪ سڄي صف کي هڪ ئي وقت ۾ ڏيکاريو (System.out.println(myArray)) جيئن پيراگراف ۾ عنوان آهي " اسڪرين تي هڪ صف ڏيکاريو "، توهان حاصل ڪندا. ڪلاس جو نالو ۽ صف جي هيڪساڊيڪل هيش (جي وضاحت ڪيل Object.toString() ). جيڪڏھن توھان شروعاتي آھيو، توھان سمجھي نه سگھندا آھيو وضاحت toString جي طريقي بابت. شروعات ۾، توهان کي ضرورت ناهي، پر هن طريقي کي استعمال ڪندي هڪ صف کي ڊسپلي ڪرڻ آسان بڻائي ٿو. جاوا توهان کي آسانيءَ سان هڪ صف ڏيکاري ٿي بغير ڪنهن لوپ جي. هيٺ ڏنل مثال هن کي ظاهر ڪري ٿو.

ھڪڙو مثال استعمال ڪندي ترتيب، بائنري ڳولھا، ۽ toString

اچو ته انٽيجرز جو هڪ صف ٺاهيو، ان کي استعمال ڪري ڏيکاريون toString ، ان کي ترتيب ڏيو استعمال ڪندي ترتيب ڏيو ، ۽ پوءِ ان ۾ ڪجهه نمبر ڳوليو.

class Main {
    public static void main(String[] args) {
        int[] array = {1, 5, 4, 3, 7}; // Declare and initialize the array
        System.out.println(array); // Try to display our array without using the toString method — the result is a hexadecimal number
        System.out.println(Arrays.toString(array)); // Display the array correctly 
        Arrays.sort(array, 0, 4); // Sort the entire array from the zeroth to the fourth element
        System.out.println(Arrays.toString(array)); // Display the sorted array
        int key = Arrays.binarySearch(array, 5); // Look for the number 5 in the sorted array. 
        // The binarySearch method will return the index of the array element we are searching for
        System.out.println(key); // Display the index of the number we searched for 
System.out.println(Arrays.binarySearch(array, 0)); // Now try to find a number that isn't in the array, 
        // and immediately display the result

    }
}
پيداوار:

[I@1540e19d 
[1, 5, 4, 3, 7] 
[1, 3, 4, 5, 7] 
3 
-1
پهرين اسٽرنگ toString استعمال ڪرڻ کان سواءِ صف کي ڊسپلي ڪرڻ جي ڪوشش آهي . ٻيو آهي صف استعمال ڪندي ڏيکاريل آهي toString . ٽيون ترتيب ڏنل صف آهي. چوٿين نمبر جي انڊيڪس آهي جنهن کي اسان ڳولهيو آهي (5) ترتيب ڏنل صف ۾ (ياد رکو ته اسان صفر کان شمار ڪريون ٿا، تنهنڪري صف جي چوٿين عنصر جي انڊيڪس 3 آهي). پنجين اسٽرنگ ۾، اسان ڏسون ٿا -1. هي هڪ غلط صف انڊيڪس آهي. اهو اشارو ڏئي ٿو ته جيڪو نمبر اسان ڳولهيو آهي (هن صورت ۾، 0) صف ۾ نه آهي.

Array ڪلاس ۾ طريقن بابت وڌيڪ

Arrays ڪلاس ۽ ان جو استعمال - ھي آرٽيڪل بيان ڪري ٿو ڪجھ طريقا Array ڪلاس ۾
Arrays ڪلاس ۾ آھن 18 اھم طريقا arrays سان ڪم ڪرڻ لاءِ

مختصر ۾ صفون

  • هڪ صف جون لازمي خاصيتون: ان ۾ رکيل ڊيٽا جو قسم، ان جو نالو ۽ ان جي ڊيگهه.
    آخري ملڪيت مقرر ڪئي وئي آهي جڏهن صف ٺاهي وئي آهي (جڏهن ميموري صف لاء مختص ڪئي وئي آهي). پهرين ٻن ملڪيتن کي طئي ڪيو ويندو آهي جڏهن صف جو اعلان ڪيو ويندو آهي.

  • صف جي سائيز (سيلز جو تعداد) هڪ int هجڻ گهرجي

  • اهو ناممڪن آهي ته هڪ صف جي ڊيگهه کي تبديل ڪرڻ کان پوء ان کي ٺاهيو وڃي.

  • هڪ صف جو عنصر ان جي انڊيڪس ذريعي پهچائي سگھجي ٿو.

  • صفن ۾ عناصر، جاوا ۾ هر شيء وانگر، صفر کان شروع ٿيندڙ نمبر آهن.

  • هڪ صف پيدا ٿيڻ کان پوء، اهو ڊفالٽ ويلن سان ڀريو ويندو آهي.

  • جاوا ۾ صفون ساڳيون نه آهن جيئن C++ ۾ صفون. اهي تقريبن متحرڪ صفن ڏانهن اشارو ڪندڙ آهن.

صفن بابت مفيد مواد

arrays بابت وڌيڪ ڄاڻڻ چاهيو ٿا؟ هيٺ ڏنل آرٽيڪل چيڪ ڪريو. هن موضوع تي تمام دلچسپ ۽ مفيد مواد شامل آهن.
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION