آرایه ها
آرایه یک ساختار داده ای است که مقادیری از یک نوع را ذخیره می کند. یک عنصر آرایه جداگانه با استفاده از یک شاخص عدد صحیح قابل دسترسی است. به عنوان مثال، اگر a آرایه ای از اعداد صحیح باشد، مقدار عبارت a[i] برابر با i-امین عدد صحیح در آرایه است.
یک آرایه به صورت زیر اعلام می شود: ابتدا نوع آرایه، یعنی نوع عناصر موجود در آرایه، به دنبال آن یک جفت کروشه خالی و سپس نام متغیر مشخص می شود. به عنوان مثال، در اینجا نحوه اعلام یک آرایه متشکل از اعداد صحیح آمده است:
int[] a;
با این حال، این عبارت فقط یک متغیر را
а
بدون مقداردهی اولیه آن با یک آرایه واقعی اعلام می کند. برای ایجاد یک آرایه، باید از عملگر استفاده کنید
new
.
int[] a = new int [100];
این عملگر آرایه ای از 100 عدد صحیح ایجاد می کند. عناصر این آرایه از 0 تا 99 شماره گذاری شده اند (نه از 1 تا 100). پس از ایجاد، آرایه را می توان به عنوان مثال با استفاده از یک حلقه پر کرد.
int[] а = new int[100];
for (int i = 0; i < 100; i++)
a[i] = i;
اگر بخواهید
а [100]
با ایجاد یک آرایه از 100 عنصر به یک عنصر (یا هر عنصر دیگری که نمایه آن خارج از محدوده 0 تا 99 است) دسترسی پیدا کنید، برنامه خاتمه می یابد زیرا یک فهرست آرایه خارج از محدوده استثنا رخ می دهد. برای شمارش تعداد عناصر یک آرایه، از روش نام آرایه استفاده کنید
.length
. مثلا،
for (int i = 0; i < a.length; i++, System.out.println(a[i]));
هنگامی که یک آرایه ایجاد می شود، تغییر اندازه آن غیرممکن است (البته می توانید عناصر جداگانه آن را تغییر دهید). اگر در طول اجرای برنامه نیاز به تغییر اندازه یک آرایه دارید، بهتر است از ساختار داده دیگری به نام فهرست آرایه استفاده کنید. یک آرایه را می توان به دو صورت اعلام کرد:
int[] a;
or
int a[];
اکثر برنامه نویسان جاوا سبک اول را ترجیح می دهند زیرا به وضوح نوع آرایه
int []
(آرایه عدد صحیح) را از نام متغیر جدا می کند.
مقداردهی اولیه آرایه و آرایه های بی نام
جاوا دارای امکاناتی برای ایجاد همزمان آرایه و مقداردهی اولیه آن است. در اینجا نمونه ای از چنین ساختار نحوی آورده شده است:
int[] smallPrimes = {2, 3, 5, 7, 11, 13};
توجه داشته باشید که در این حالت نیازی به استفاده از اپراتور نیست
new
. علاوه بر این، حتی می توانید یک آرایه بدون نام را مقداردهی اولیه کنید:
new int[] {16, 19, 23, 29, 31, 37}
این عبارت حافظه را برای یک آرایه جدید اختصاص می دهد و آن را با اعداد مشخص شده در پرانتزهای فرفری پر می کند. در این حالت تعداد آنها محاسبه شده و بر این اساس اندازه آرایه مشخص می شود. استفاده از این ساختار نحوی برای شروع مجدد آرایه بدون ایجاد متغیر جدید راحت است. مثلاً عبارت
smallPrimes = new int{17, 19, 23, 29, 31, 37};
یک عبارت کوتاه شده است
int[] anonymous = {17, 19, 23, 29, 31, 37};
smallPrimes = anonymous;
شما می توانید یک آرایه با اندازه صفر ایجاد کنید. چنین آرایهای میتواند هنگام نوشتن روشی مفید باشد که آرایهای را که خالی است، ارزیابی میکند. یک آرایه با طول صفر به صورت زیر اعلام می شود:
new тип Элементов[]
توجه داشته باشید که چنین آرایه ای معادل یک شی نیست
null
.
کپی کردن آرایه ها
یک آرایه را می توان در آرایه دیگر کپی کرد، اما هر دو متغیر به یک آرایه اشاره می کنند.
int[] luckyNumbers = smallPrimes;
luckyNumbers[5] = 12;
نتیجه در شکل نشان داده شده است. 3.1. اگر نیاز دارید که تمام عناصر یک آرایه را در آرایه دیگر کپی کنید، باید از روش arraycopy از کلاس استفاده کنید
System
. تماس آن به این صورت است:
System.arraycopy(from, fromlndex, to, tolndex, count);
آرایه
to
باید به اندازه ای بزرگ باشد که شامل تمام عناصری باشد که باید کپی شوند.
شکل 3.1. کپی کردن یک آرایه
به عنوان مثال، عملگرهای نشان داده شده در زیر، که نتایج آن در شکل نشان داده شده است. 3.2، دو آرایه ایجاد کنید و سپس چهار عنصر آخر آرایه اول را در آرایه دوم کپی کنید. کپی کردن از موقعیت دوم در آرایه منبع شروع می شود و عناصر کپی شده در آرایه هدف قرار می گیرند که از موقعیت سوم شروع می شود.
int[] smallPrimes = {2, 3, 5, 7, 11, 13};
int[] luckyNumbers = {1001, 1002, 1003, 1004, 1005, 1006, 1007};
System.аrrаусору(smallPrimes, 2, luckyNumbers, 3, 4);
for (int i = 0; i < luckyNumbers.length; i++)
System.out.println(i + ": " + luckyNumbers[i]);
اجرای این دستورات نتیجه زیر را ایجاد می کند.
0: 1001
1: 1002
2: 1003
3: 5
4: 7
5: 11
6: 13
برنج. 3.2. کپی کردن عناصر آرایه
یک آرایه در جاوا تفاوت قابل توجهی با آرایه در C++ دارد. با این حال، عملاً مانند یک اشاره گر به یک آرایه پویا است. این بدان معنی است که اپراتور
int[] a = new int[100];
معادل اپراتور است
int* = new int[100];
а не
int a[100];
در جاوا،
[]
اپراتور پیش فرض محدوده تغییرات شاخص را بررسی می کند. علاوه بر این، جاوا حسابی اشاره گر ندارد—شما نمی توانید یک اشاره گر را برای دسترسی به عنصر بعدی آرایه افزایش دهید.
پیوند به منبع: آرایه های جاوا
GO TO FULL VERSION