JavaRush /وبلاگ جاوا /Random-FA /آرایه ها در جاوا

آرایه ها در جاوا

در گروه منتشر شد
سلول ها را در یک انباری تصور کنید. هر کدام شماره مخصوص به خود را دارند و هر کدام حاوی نوعی شی "چمدان" است. یا یک لیست شراب که در آن همه انواع شراب شماره گذاری شده است و هنگام سفارش فقط باید شماره نوشیدنی را بدهید. یا لیستی از دانش آموزان در یک گروه که در آن دانش آموز "Andreev" در سلول اول و "Yakovlev" در سلول آخر نوشته می شود. یا لیستی از مسافران هواپیما که به هر کدام یک صندلی با شماره مشخص اختصاص داده شده است. در جاوا، برای کار با ساختارهای مشابه، یعنی داده های همگن زیاد، آرایه ها در جاوا اغلب استفاده می شوند.

آرایه چیست؟

آرایه یک ساختار داده است که عناصری از یک نوع را ذخیره می کند. می‌توان آن را مجموعه‌ای از سلول‌های شماره‌دار در نظر گرفت که هر کدام می‌تواند حاوی داده‌هایی باشد (یک عنصر داده در هر سلول). دسترسی به یک سلول خاص از طریق شماره آن انجام می شود. به تعداد یک عنصر در یک آرایه، شاخص نیز می گویند . در مورد جاوا، آرایه همگن است، یعنی تمام سلول های آن عناصری از یک نوع را ذخیره می کنند. بنابراین، یک آرایه از اعداد صحیح فقط شامل اعداد صحیح است (به عنوان مثال، از نوع int )، یک آرایه از رشته ها فقط شامل رشته ها است، یک آرایه از عناصر کلاس Dog که ما ایجاد کردیم ، فقط شامل اشیاء Dog خواهد بود . یعنی در جاوا نمی‌توانیم یک عدد صحیح در خانه اول یک آرایه، یک رشته در خانه دوم و یک سگ را در خانه سوم قرار دهیم. آرایه ها در جاوا

اعلان آرایه

چگونه یک آرایه را اعلام کنیم؟

مانند هر متغیری، یک آرایه در جاوا باید اعلان شود. شما می توانید این کار را به یکی از دو روش انجام دهید. آنها معادل هستند، اما اولی با سبک جاوا سازگارتر است. دوم میراث زبان C است (بسیاری از برنامه نویسان C به جاوا تغییر مکان دادند و برای راحتی آنها یک روش جایگزین باقی ماند). جدول هر دو روش برای اعلام آرایه در جاوا را نشان می دهد:
خیر اعلان آرایه، نحو جاوا مثال ها یک نظر
1.
dataType[] arrayName;
int[] myArray;

Object[]
arrayOfObjects;
توصیه می شود یک آرایه را به این ترتیب اعلام کنید، این سبک جاوا است
2.
dataType arrayName[];
int myArray[];

Object
arrayOfObjects[];
روشی ارثی برای اعلان آرایه ها از C/C++ که در جاوا نیز کار می کند
در هر دو مورد، dataType نوع متغیرهای آرایه است. در مثال ها دو آرایه را اعلام کردیم. یکی اعداد صحیح از نوع int و دیگری اشیاء از نوع Object را ذخیره می کند . بنابراین، هنگامی که یک آرایه اعلام می شود، دارای یک نام و یک نوع (نوع متغیرهای آرایه) است. 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 است.

اطلاعات بیشتر در مورد آرایه ها را می توانید در مقاله " چیزی در مورد آرایه ها " بیابید.

طول آرایه در جاوا

همانطور که در بالا گفتیم، طول یک آرایه تعداد عناصری است که آرایه برای آنها طراحی شده است. طول یک آرایه پس از ایجاد آن قابل تغییر نیست. توجه داشته باشید:در جاوا، عناصر آرایه با شروع از صفر شماره گذاری می شوند. یعنی اگر آرایه ای از 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 نمایش دهید . روش دیگر و کوتاه‌تر برای نمایش آرایه روی صفحه در پاراگراف «روش‌های مفید برای کار با آرایه‌ها» در زیر مورد بحث قرار خواهد گرفت. در حال حاضر، اجازه دهید به مثالی با خروجی چرخه‌ای یک آرایه نگاه کنیم:
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]. هر جا دو تا هست سه تا هست. در جاوا می توانید یک آرایه از آرایه ها ... یک آرایه از آرایه ها و ... را مشخص کنید. درست است، آرایه های سه بعدی و بیشتر به ندرت استفاده می شوند. با این حال، با استفاده از یک آرایه سه بعدی، می توانید به عنوان مثال، یک مکعب روبیک را برنامه ریزی کنید.

چه چیز دیگری برای خواندن

آرایه های چند بعدی

روش های مفید برای کار با آرایه ها

برای کار با آرایه ها در جاوا یک کلاس java.util.Arrays وجود دارد (آرایه ها در انگلیسی به معنی آرایه ها هستند). به طور کلی، عملیات زیر اغلب با آرایه ها انجام می شود: پر کردن با عناصر (initialization)، بازیابی یک عنصر (بر اساس تعداد)، مرتب سازی و جستجو. جستجو و مرتب سازی آرایه ها موضوعی جداگانه است. از یک طرف تمرین و نوشتن چندین الگوریتم جستجو و مرتب سازی خودتان بسیار مفید است. از سوی دیگر، تمام بهترین روش ها قبلاً نوشته شده و در کتابخانه های جاوا گنجانده شده است و می توان از آنها به طور قانونی استفاده کرد. در اینجا سه ​​روش مفید از این کلاس آورده شده است

مرتب سازی یک آرایه

این روش void sort(int[] myArray, int fromIndex, int toIndex)آرایه ای از اعداد صحیح یا زیرآرایه آن را به ترتیب صعودی مرتب می کند.

جستجوی آرایه برای عنصر مورد نظر

int binarySearch(int[] myArray, int fromIndex, int toIndex, int key). این روش عنصر کلیدی را در یک myArray یا زیرآرایه از قبل مرتب شده جستجو می کند که از fromIndex شروع می شود و به toIndex ختم می شود . اگر عنصر پیدا شود، متد شاخص خود را برمی‌گرداند، اگر نه - (-fromIndex)-1.

تبدیل آرایه به رشته

متد String toString(int[] myArray)آرایه را به رشته تبدیل می کند. مسئله این است که در جاوا آرایه‌های toString() را باطل نمی‌کنند . این بدان معنی است که اگر سعی کنید کل آرایه را (به جای عنصر به عنصر، مانند " چاپ یک آرایه در صفحه ") مستقیماً روی صفحه نمایش دهید ( System.out.println(myArray))، نام کلاس و کد هگز هگزا دسیمال آرایه را دریافت خواهید کرد. (این توسط Object.toString() تعریف شده است ). اگر مبتدی هستید، ممکن است توضیح روش را متوجه نشوید toString. در مرحله اول این کار ضروری نیست، اما با استفاده از این روش خروجی آرایه ساده می شود. جاوا نمایش یک آرایه را بدون استفاده از حلقه آسان می کند. بیشتر در این مورد در مثال زیر.

مثال در sort، biarySearch و toString

بیایید یک آرایه از اعداد صحیح ایجاد کنیم، آن را با استفاده از toString روی صفحه نمایش دهیم، آن را با استفاده از روش مرتب سازی مرتب کنیم و تعدادی را در آن پیدا کنیم.
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) در آرایه نیست.

اطلاعات بیشتر در مورد متدهای کلاس Array

کلاس Arrays و استفاده از آن - این مقاله برخی از روش های کلاس Array را توضیح می دهد

نکته اصلی در مورد آرایه ها

  • ویژگی های اصلی یک آرایه: نوع داده های قرار داده شده در آن، نام و طول.
    دومی در هنگام مقداردهی اولیه (تخصیص حافظه برای آرایه) تصمیم گیری می شود، دو پارامتر اول هنگام اعلام آرایه تعیین می شوند.

  • اندازه آرایه (تعداد سلول ها) باید به صورت int تعریف شود

  • شما نمی توانید طول یک آرایه را پس از ایجاد آن تغییر دهید.

  • یک عنصر آرایه با نمایه آن قابل دسترسی است.

  • در آرایه ها، مانند جاهای دیگر جاوا، عناصر با شروع از صفر شماره گذاری می شوند.

  • پس از مراحل ایجاد آرایه، با مقادیر پیش فرض پر می شود.

  • ساختار آرایه ها در جاوا با C++ متفاوت است. آنها تقریباً مشابه نشانگرهای آرایه های پویا هستند.

مطالب مفید در مورد آرایه ها

آیا می خواهید در مورد آرایه ها بیشتر بدانید؟ لطفا به مقالات زیر نگاهی بیندازید. اطلاعات جالب و مفید زیادی در مورد این موضوع وجود دارد.
  1. چیزی درباره آرایه ها - مقاله مفصل خوب در مورد آرایه ها

  2. کلاس Arrays و استفاده از آن - این مقاله برخی از روش های کلاس Array را توضیح می دهد

  3. آرایه های چند بعدی - مقاله مفصلی در مورد آرایه های چند بعدی با مثال.

  4. یک آرایه با طول صفر را برگردانید، نه تهی - نویسنده برنامه نویسی موثر، جاشوا بلوخ در مورد چگونگی برگرداندن بهتر آرایه های خالی صحبت می کند.

نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION