CodeGym /جاوا بلاگ /Random-UR /جاوا میں صفیں
John Squirrels
سطح
San Francisco

جاوا میں صفیں

گروپ میں شائع ہوا۔
اسٹوریج روم میں الماریوں کا تصور کریں۔ ان میں سے ہر ایک کا اپنا نمبر ہے، اور ان میں سے ہر ایک سامان کی کوئی نہ کوئی چیز محفوظ کرتا ہے۔ یا شراب کی ایک فہرست جہاں ہر قسم کی شراب کا نمبر دیا جاتا ہے اور آپ اپنے مشروبات کا نمبر دے کر آرڈر کرتے ہیں۔ یا طلباء کی فہرست جس میں "ایڈمز" پہلی پوزیشن پر اور "زمر" آخری نمبر پر ہے۔ یا ہوائی جہاز کے مسافروں کی فہرست، جن میں سے ہر ایک کو نمبر والی سیٹ تفویض کی گئی ہے۔ جاوا میں، arrays کو اکثر ایسے ڈھانچے کے ساتھ کام کرنے کے لیے استعمال کیا جاتا ہے، یعنی یکساں ڈیٹا کے سیٹ۔

کوڈ جیم کورس میں صفیں

کوڈ جیم پر، آپ جاوا سنٹیکس کی تلاش کے لیول 7 پر صفوں کے ساتھ کام کرنا شروع کرتے ہیں۔ تین اسباق ان کے لیے وقف ہیں، ساتھ ہی ساتھ صفوں کے ساتھ کام کرنے والی آپ کی مہارت کو مستحکم کرنے کے لیے مختلف سطحوں پر 8 کام۔ لیکن آپ کو کورس کے دوران کئی بار صفوں کا سامنا کرنا پڑے گا (خاص طور پر، جاوا کلیکشن کی تلاش میں اور آپ کے مستقبل کے کام کے حصے کے طور پر اری کلاس کا مطالعہ کیا جائے گا۔

ایک صف کیا ہے؟

ایک صف ایک ڈیٹا ڈھانچہ ہے جو ایک ہی قسم کے عناصر کو اسٹور کرتی ہے۔ آپ اسے نمبر والے خلیوں کے سیٹ کے طور پر سوچ سکتے ہیں۔ آپ ہر سیل میں کچھ ڈیٹا رکھ سکتے ہیں (ایک ڈیٹا عنصر فی سیل)۔ ایک مخصوص سیل تک اس کے نمبر کا استعمال کرتے ہوئے رسائی حاصل کی جاتی ہے۔ صف میں ایک عنصر کے نمبر کو انڈیکس بھی کہا جاتا ہے ۔ جاوا میں، ایک صف یکساں ہوتی ہے، یعنی اس کے تمام خلیات ایک ہی قسم کے عناصر پر مشتمل ہوتے ہیں۔ اس طرح، انٹیجرز کی ایک صف میں صرف انٹیجرز ( int )، سٹرنگز کی ایک صف - صرف سٹرنگز، اور ڈاگ کلاس کی مثالوں کی ایک صف جو ہم نے بنائی ہے اس میں صرف Dog آبجیکٹ شامل ہوں گے۔ دوسرے لفظوں میں، جاوا ہمیں صف کے پہلے سیل میں ایک عدد عدد، دوسرے میں سٹرنگ اور تیسرے میں ایک کتا لگانے نہیں دے گا۔جاوا میں صفیں - 2

ایک صف کا اعلان کرنا

آپ ایک صف کا اعلان کیسے کرتے ہیں؟

کسی بھی متغیر کی طرح، جاوا میں ایک صف کا اعلان کرنا ضروری ہے۔ یہ دو طریقوں میں سے کسی ایک طریقے سے کیا جا سکتا ہے۔ وہ مساوی ہیں، لیکن پہلا طریقہ جاوا سٹائل کے ساتھ زیادہ مطابقت رکھتا ہے۔ دوسرا C زبان کی میراث ہے: بہت سے C پروگرامرز جاوا میں بدل گئے، اور ان کی سہولت کے لیے ایک متبادل طریقہ رکھا گیا۔ جدول جاوا میں صف کا اعلان کرنے کے دونوں طریقے دکھاتا ہے:
نہیں. ایک صف کا اعلان کرنا، جاوا نحو مثالیں تبصرہ
dataType[] arrayName؛
int[] myArray;

Object[]
arrayOfObjects;
اس طرح ایک صف کا اعلان کرنا مناسب ہے۔ یہ جاوا اسٹائل ہے۔
2.
dataType arrayName[];
int myArray[];

Object
arrayOfObjects[];
صفوں کے اعلان کا طریقہ C/C++ سے وراثت میں ملا ہے، جاوا میں کام کرتا ہے۔
دونوں صورتوں میں، dataType صف میں متغیرات کی قسم ہے۔ مثالوں میں، ہم نے دو صفوں کا اعلان کیا۔ ایک int s ذخیرہ کرے گا، اور دوسرا - آبجیکٹ آبجیکٹ۔ اس طرح، ایک صف کے اعلان کا ایک نام اور قسم ہے (سرنی کے عناصر کی قسم)۔ 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 سرنی کے لیے، یہ 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"};

آپ جاوا میں اسکرین پر ایک صف کو کیسے ظاہر کرتے ہیں؟

آپ فار لوپ کا استعمال کرتے ہوئے اسکرین پر (یعنی کنسول پر) صف کے عناصر کو ظاہر کر سکتے ہیں ۔ ایک سرنی کو ظاہر کرنے کا ایک اور مختصر طریقہ پیراگراف میں زیر بحث آئے گا جس کا عنوان ہے " arrays کے ساتھ کام کرنے کے مفید طریقے "۔ اس دوران، اس مثال پر ایک نظر ڈالیں جہاں لوپ کا استعمال کرتے ہوئے ایک صف دکھائی دیتی ہے۔
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] ) اسے یک جہتی صف کے طور پر جانا جاتا ہے۔ لیکن صفوں کی ایک صف کو دو جہتی صف کہا جاتا ہے۔ یہ ایک میز کی طرح ہے جس میں ایک قطار نمبر اور ایک کالم نمبر ہے۔ یا، اگر آپ نے لکیری الجبرا کی بنیادی باتیں سیکھ لی ہیں، تو آپ اسے میٹرکس کے طور پر سوچ سکتے ہیں۔ جاوا میں صفیں - 4ہمیں ایسی صفوں کی ضرورت کیوں ہے؟ ٹھیک ہے، پروگرام میٹرکس اور ٹیبلز کے ساتھ ساتھ دیگر اشیاء جن کی ساخت ایک جیسی ہے۔ مثال کے طور پر، ایک شطرنج کی بورڈ کو 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] سے مساوی ہے ۔ لیکن ہم اسے کہاں تک آگے بڑھا سکتے ہیں؟ جاوا میں، آپ arrays کی ایک صف کی وضاحت کر سکتے ہیں... arrays کی arrays کی ایک صف، وغیرہ۔ بلاشبہ، سہ جہتی اور اعلیٰ جہتی صفیں بہت کم استعمال ہوتی ہیں۔ اس نے کہا، مثال کے طور پر، آپ روبک کیوب کو پروگرام کرنے کے لیے تین جہتی سرنی کا استعمال کر سکتے ہیں۔

صفوں کے ساتھ کام کرنے کے مفید طریقے

جاوا میں arrays کے ساتھ کام کرنے کے لیے java.util.Arrays کلاس ہے۔ عام طور پر، صفوں پر کیے جانے والے سب سے زیادہ عام آپریشنز ابتداء (عناصر سے بھرنا)، عنصر کی بازیافت (انڈیکس کے لحاظ سے)، چھانٹنا، اور تلاش کرنا ہیں۔ صفوں کو تلاش کرنا اور چھانٹنا دوسرے دن کے لیے عنوانات ہیں۔ ایک طرف، یہ اچھی مشق ہے کہ خود کئی تلاش اور الگورتھم کو ترتیب دیں۔ دوسری طرف، تمام بہترین الگورتھم پہلے ہی لاگو کیے جا چکے ہیں اور معیاری جاوا لائبریریوں میں شامل کیے جا چکے ہیں، اور آپ انہیں قانونی طور پر استعمال کر سکتے ہیں۔ اس کلاس میں تین مفید طریقے یہ ہیں۔

ایک صف کو ترتیب دینا

void sort(int[] myArray, int fromIndex, int toIndex) طریقہ صعودی ترتیب میں عددی صف یا ذیلی رے کو ترتیب دیتا ہے۔

ایک صف میں ایک عنصر کی تلاش

int binarySearch(int[] myArray، int fromIndex، int toIndex، int کلید) ۔ یہ طریقہ ایک ترتیب شدہ myArray سرنی یا ذیلی رے میں کلیدی عنصر کو تلاش کرتا ہے ، fromIndex سے toIndex تک ۔ اگر شے مل جاتی ہے، تو وہ اس کا اشاریہ لوٹاتا ہے۔ بصورت دیگر، یہ واپس آتا ہے (-fromIndex)-1 ۔

ایک صف کو سٹرنگ میں تبدیل کرنا

String toString(int[] myArray) طریقہ ایک صف کو سٹرنگ میں تبدیل کرتا ہے۔ جاوا میں، صفوں کو اوور رائڈ نہیں کرتے toString() ۔ اس کا مطلب یہ ہے کہ اگر آپ ایک وقت میں ایک عنصر کی بجائے پوری صف کو ایک ساتھ ظاہر کرنے کی کوشش کرتے ہیں جیسا کہ پیراگراف میں " اسکرین پر ایک سرنی ڈسپلے کریں " کے عنوان سے ہے ، تو آپ کو مل جائے گا۔ کلاس کا نام اور سرنی کی ہیکساڈیسیمل ہیش (جس کی وضاحت Object.toString() )۔ اگر آپ ابتدائی ہیں، تو آپ ٹو سٹرنگ طریقہ کے بارے میں وضاحت کو نہیں سمجھ سکتے۔ ابتدائی طور پر، آپ کو اس کی ضرورت نہیں ہے، لیکن اس طریقہ کو استعمال کرنے سے ایک صف کو ظاہر کرنا آسان ہو جاتا ہے۔ جاوا آپ کو لوپ کا استعمال کیے بغیر آسانی سے ایک صف کو ظاہر کرنے دیتا ہے۔ ذیل کی مثال اس کو ظاہر کرتی ہے۔

sort، binarySearch، اور toString کا استعمال کرتے ہوئے ایک مثال

آئیے انٹیجرز کی ایک صف بنائیں، اسے استعمال کرکے دکھائیں toString ، sort طریقہ استعمال کرکے اسے ترتیب دیں، اور پھر اس میں کچھ نمبر تلاش کریں۔
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) وہ صف میں نہیں ہے۔

ارے کلاس میں طریقوں کے بارے میں مزید

Arrays کلاس اور اس کا استعمال - یہ مضمون Array کلاس میں کچھ طریقوں کی وضاحت کرتا ہے
Arrays کلاس میں arrays کے ساتھ کام کرنے کے 18 اہم طریقے ہیں۔

مختصر طور پر صفیں

  • ایک صف کی ضروری خصوصیات: اس میں رکھے گئے ڈیٹا کی قسم، اس کا نام، اور اس کی لمبائی۔
    آخری خاصیت کا تعین اس وقت ہوتا ہے جب سرنی بنائی جاتی ہے (جب میموری کو سرنی کے لیے مختص کیا جاتا ہے)۔ پہلی دو خصوصیات کا تعین اس وقت ہوتا ہے جب صف کا اعلان کیا جاتا ہے۔

  • صف کا سائز (خلیوں کی تعداد) ایک int ہونا چاہیے۔

  • کسی صف کے بننے کے بعد اس کی لمبائی کو تبدیل کرنا ناممکن ہے۔

  • ایک سرنی عنصر کو اس کے انڈیکس سے حاصل کیا جا سکتا ہے۔

  • صفوں میں موجود عناصر، جاوا میں ہر چیز کی طرح، صفر سے شروع ہوتے ہوئے شمار کیے جاتے ہیں۔

  • ایک صف بنانے کے بعد، یہ پہلے سے طے شدہ اقدار سے بھر جاتا ہے۔

  • جاوا میں ارییں C++ میں ارے جیسی نہیں ہیں۔ وہ تقریباً متحرک صفوں کے اشارے کی طرح ہیں۔

صفوں کے بارے میں مفید مواد

arrays کے بارے میں مزید جاننا چاہتے ہیں؟ نیچے دیے گئے مضامین کو دیکھیں۔ اس موضوع پر بہت سارے دلچسپ اور مفید مواد شامل ہیں۔
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION