JavaRush /جاوا بلاگ /Random-UR /جاوا میں صفیں

جاوا میں صفیں

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

ایک صف کیا ہے؟

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

صف کا اعلان

ایک صف کا اعلان کیسے کریں؟

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

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

Object
arrayOfObjects[];
C/C++ سے صفوں کا اعلان کرنے کا ایک وراثت والا طریقہ جو جاوا میں بھی کام کرتا ہے۔
دونوں صورتوں میں، dataType صف میں متغیرات کی قسم ہے۔ مثالوں میں ہم نے دو صفوں کا اعلان کیا۔ ایک قسم کے عدد کو ذخیرہ کرے گا int ، دوسرا ذخیرہ کرے گا آبجیکٹ قسم کی اشیاء ۔ اس طرح، جب ایک صف کا اعلان کیا جاتا ہے، اس کا ایک نام اور ایک قسم (سرنی متغیرات کی قسم) ہوتی ہے۔ arrayName صف کا نام ہے۔

ایک صف بنانا

ایک صف کیسے بنائیں؟

کسی بھی دوسری چیز کی طرح، آپ جاوا سرنی بنا سکتے ہیں، یعنی اس کے لیے میموری کی جگہ محفوظ کر سکتے ہیں، نئے آپریٹر کا استعمال کرتے ہوئے ۔ یہ اس طرح کیا جاتا ہے:
new typeOfArray [length];
جہاں typeOfArray صف کی قسم ہے، اور لمبائی اس کی لمبائی ہے (یعنی سیلوں کی تعداد)، جو عدد ( int ) میں ظاہر کی جاتی ہے۔ تاہم، یہاں ہم نے صرف ارے کے لیے میموری مختص کی ہے، لیکن تخلیق شدہ ارے کو پہلے سے اعلان کردہ کسی متغیر کے ساتھ منسلک نہیں کیا ہے۔ عام طور پر ایک صف کا پہلے اعلان کیا جاتا ہے اور پھر تخلیق کیا جاتا ہے، مثال کے طور پر:
int[] myArray; // array declaration
myArray = new int[10]; // creation, that is, allocation of memory for an array of 10 elements of type int
یہاں ہم نے انٹیجرز کی ایک صف کا اعلان کیا جسے myArray کہتے ہیں، اور پھر اعلان کیا کہ یہ 10 خلیات پر مشتمل ہے (جن میں سے ہر ایک عدد کو ذخیرہ کرے گا)۔ تاہم، اس شارٹ ہینڈ نحو کا استعمال کرتے ہوئے اعلان کے فوراً بعد ایک صف بنانا زیادہ عام ہے۔
int[] myArray = new int[10]; // declaration and allocation of memory "in one bottle"
نوٹ:new کا استعمال کرتے ہوئے ایک صف بنانے کے بعد ، اس کے سیل پہلے سے طے شدہ اقدار سے بھر جاتے ہیں۔ عددی اقسام کے لیے (جیسا کہ ہماری مثال میں) یہ 0 ہو گا، boolean - false ، حوالہ کی اقسام کے لیے - null ۔ اس طرح، آپریشن کے بعد
int[] myArray = new int[10];
ہمیں دس عدد کی ایک صف ملتی ہے، اور جب تک یہ پروگرام کے دوران تبدیل نہیں ہوتا، ہر سیل میں 0 ہوتا ہے۔

arrays کے بارے میں مزید معلومات مضمون میں پایا جا سکتا ہے " arrays کے بارے میں کچھ "

جاوا میں صف کی لمبائی

جیسا کہ ہم نے اوپر کہا، ایک صف کی لمبائی عناصر کی تعداد ہے جس کے لیے سرنی کو ڈیزائن کیا گیا ہے۔ ایک صف کے بننے کے بعد اس کی لمبائی کو تبدیل نہیں کیا جا سکتا۔ نوٹ:جاوا میں، صف کے عناصر کو صفر سے شروع کرتے ہوئے نمبر دیا جاتا ہے۔ یعنی، اگر ہمارے پاس 10 عناصر کی ایک صف ہے، تو صف کے پہلے عنصر کا انڈیکس 0 ہوگا، اور آخری میں انڈیکس 9 ہوگا۔ آپ lengthجاوا میں صفیں - 3 متغیر کا استعمال کرتے ہوئے صف کی لمبائی تک رسائی حاصل کرسکتے ہیں ۔ مثال:
int[] myArray = new int[10]; // created an array of integers with 10 elements and named it myArray
System.out.println(myArray.length); // printed to the console the length of the array, that is, the number of elements that we can put in the array
پروگرام آؤٹ پٹ:
10

ایک صف کو شروع کرنا اور اس کے عناصر تک رسائی حاصل کرنا

جاوا میں صف بنانے کا طریقہ پہلے ہی واضح ہے۔ اس طریقہ کار کے بعد، ہمیں خالی صف نہیں ملتی ہے، بلکہ پہلے سے طے شدہ اقدار سے بھری ہوئی صف ملتی ہے۔ مثال کے طور پر، int کی صورت میں یہ 0 ہوں گے، اور اگر ہمارے پاس حوالہ کی قسم کے ڈیٹا کے ساتھ ایک سرنی ہے، تو پہلے سے طے شدہ طور پر، ہر سیل میں null لکھا جاتا ہے ۔ ہم ایک سرنی عنصر تک رسائی حاصل کرتے ہیں (یعنی ہم اس میں ایک قدر لکھتے ہیں یا اسے اسکرین پر ظاہر کرتے ہیں یا اس کے ساتھ کچھ آپریشن کرتے ہیں) اس کے انڈیکس کے ذریعے۔ کسی صف کو شروع کرنا اسے مخصوص ڈیٹا سے بھر رہا ہے (بطور ڈیفالٹ نہیں)۔ مثال: آئیے 4 سیزن کی ایک صف بنائیں اور اسے سٹرنگ ویلیوز سے بھریں - ان سیزن کے نام۔
String[] seasons  = new String[4]; /* declared and created an array. Java allocated memory for an array of 4 strings, and now each cell is null (because the string is a reference type)*/

seasons[0] = "Winter"; /* in the first cell, that is, in the cell with a zero number, we wrote the string Winter. Here we get access to the zero element of the array and write a specific value there */
seasons[1] = "Spring"; // do the same procedure with cell number 1 (second)
seasons[2] = "Summer"; // ...number 2
seasons[3] = "Autumn"; // and with the last one, number 3
اب ہماری صف کے چاروں خلیوں میں موسموں کے نام ہیں۔ ابتداء کو مختلف طریقے سے بھی کیا جا سکتا ہے، ابتدا اور اعلان کو ملا کر:
String[] seasons  = new String[] {"Winter", "Spring", "Summer", "Autumn"};
مزید یہ کہ، نئے آپریٹر کو چھوڑا جا سکتا ہے:
String[] seasons  = {"Winter", "Spring", "Summer", "Autumn"};

جاوا میں ایک صف کو اسکرین پر کیسے ڈسپلے کریں؟

آپ اسکرین پر صف کے عناصر کو ظاہر کر سکتے ہیں (یعنی کنسول پر)، مثال کے طور پر، for loop کا استعمال کرتے ہوئے ۔ اسکرین پر ایک صف کو ظاہر کرنے کا ایک اور، مختصر طریقہ ذیل میں پیراگراف "ارے کے ساتھ کام کرنے کے مفید طریقے" میں زیر بحث آئے گا۔
String[] seasons  = new String[] {"Winter", "Spring", "Summer", "Autumn"};
for (int i = 0; i < 4; i++) {
System.out.println(seasons[i]);
}
نتیجے کے طور پر، پروگرام مندرجہ ذیل نتیجہ نکالے گا:
موسم سرما کی بہار موسم گرما خزاں

ایک جہتی اور کثیر جہتی جاوا صفیں۔

کیا ہوگا اگر ہم نمبروں کی صف، تاروں کی ایک صف، یا کچھ اشیاء کی ایک صف نہیں بلکہ صفوں کی ایک صف بنانا چاہتے ہیں؟ جاوا آپ کو ایسا کرنے کی اجازت دیتا ہے۔ پہلے سے واقف سرنی 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 کی ایک صف، وغیرہ۔ سچ ہے، سہ جہتی اور زیادہ صفیں بہت کم استعمال ہوتی ہیں۔ تاہم، تین جہتی صف کا استعمال کرتے ہوئے، آپ پروگرام کر سکتے ہیں، مثال کے طور پر، ایک Rubik's کیوب۔

اور کیا پڑھنا ہے۔

کثیر جہتی صفیں۔

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

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

ایک صف کو ترتیب دیں۔

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

مطلوبہ عنصر کے لیے ایک صف تلاش کرنا

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

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

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

ترتیب، binarySearch اور toString پر مثال

آئیے انٹیجرز کی ایک صف بنائیں، اسے toString استعمال کرکے اسکرین پر ڈسپلے کریں، sort طریقہ استعمال کرکے اسے ترتیب دیں ، اور اس میں کچھ نمبر تلاش کریں۔
class Main {
    public static void main(String[] args) {
        int[] array = {1, 5, 4, 3, 7}; //declaring and initializing the array
        System.out.println(array);//trying to display our array on the screen without the toString method - we get a hexadecimal number
        System.out.println(Arrays.toString(array));//печатаем массив "правильно"
        Arrays.sort(array, 0, 4); // sort the entire array from zero to the fourth member
        System.out.println(Arrays.toString(array));//print the sorted array to the screen
        int key = Arrays.binarySearch(array, 5); // ищем key - число 5 в отсортированном массиве.
        //binarySearch method will return the index of the sorted array element, in which the required number is "hidden"
        System.out.println(key);//распечатываем индекс искомого числа
System.out.println(Arrays.binarySearch(array, 0));//а теперь попробуем найти число, которого в массиве нет,
        // and immediately display the result on the screen

    }
}
پروگرام آؤٹ پٹ:
[I@1540e19d [1, 5, 4, 3, 7] [1, 3, 4, 5, 7] 3 -1
پہلی لائن toString کے بغیر کسی سرنی کو ظاہر کرنے کی کوشش ہے ، دوسری toString کا استعمال کرتے ہوئے ایک سرنی دکھا رہی ہے، تیسری ترتیب شدہ صف ہے، چوتھی ترتیب شدہ صف میں مطلوبہ نمبر 5 کا انڈیکس ہے (یاد رکھیں کہ ہم اس سے گن رہے ہیں۔ صفر، لہذا صف کے چوتھے عنصر کا انڈیکس 3 ہے)۔ پانچویں لائن میں ہم قدر دیکھتے ہیں -1 ۔ ایک صف میں ایسا انڈیکس نہیں ہوتا ہے۔ آؤٹ پٹ اشارہ کرتا ہے کہ مطلوبہ عنصر (اس صورت میں، 0) صف میں نہیں ہے۔

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

Arrays کلاس اور اس کا استعمال - مضمون میں Array کلاس کے کچھ طریقے بیان کیے گئے ہیں۔

صفوں کے بارے میں اہم بات

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

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

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

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

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

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

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

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

arrays کے بارے میں مزید جاننا چاہتے ہیں؟ براہ کرم ذیل کے مضامین پر ایک نظر ڈالیں۔ اس موضوع پر کافی دلچسپ اور مفید معلومات موجود ہیں۔
  1. Arrays کے بارے میں کچھ - arrays پر اچھا تفصیلی مضمون

  2. Arrays کلاس اور اس کا استعمال - مضمون میں Array کلاس کے کچھ طریقے بیان کیے گئے ہیں۔

  3. کثیر جہتی صفوں - مثالوں کے ساتھ کثیر جہتی صفوں کے بارے میں ایک تفصیلی مضمون۔

  4. صفر کی لمبائی والی صف واپس کریں، کالعدم نہیں - موثر پروگرامنگ مصنف جوشوا بلوچ خالی صفوں کو بہتر طریقے سے واپس کرنے کے طریقہ کے بارے میں بات کرتے ہیں۔

تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION