آرایهها (Java Arrays)
آرایهها (Arrays): انبار دستهبندی شده دادهها 📦🔢
آرایهها برای ذخیره چندین مقدار در یک تک متغیر استفاده میشوند. به جای اینکه برای هر اسم یک متغیر جدا بسازید، همه آنها را در یک آرایه قرار میدهید.
۱. تعریف و مقداردهی
برای تعریف آرایه باید از کروشه [] استفاده کنید:
۲. دسترسی به عناصر (Indexing) 📍
ایندکس آرایهها در جاوا از صفر شروع میشود:
{code_block('System.out.println(cars[0]); // خروجی: Volvo\ncars[0] = "Opel"; // تغییر مقدار اول')}۳. طول آرایه (Length)
برای اینکه بدانید یک آرایه چند عنصر دارد، از ویژگی .length استفاده کنید:
پیمایش آرایه با حلقه:
{code_block('for (int i = 0; i < cars.length; i++) {\n System.out.println(cars[i]);\n}')}ArrayList استفاده میشود که در فصلهای آینده خواهیم دید.
int[][] myNumbers = { {1, 2}, {3, 4} };
Arrays دارد که با آن میتوانید آرایه را به راحتی مرتب (Sort) کنید.
بخش تخصصی: کنترل جریان در پروژههای صنعتی 🛠️💎
در این بخش، به نکاتی میپردازیم که تفاوت یک کدآموز و یک مهندس نرمافزار حرفهای را مشخص میکنند.
۱. پیچیدگی زمانی (Time Complexity) در حلقهها
هر بار که حلقهای مینویسید، باید به تعداد تکرارهای آن فکر کنید. در جاوا، حلقههای تودرتو (Nested Loops) میتوانند به سرعت باعث کُند شدن برنامه شوند (مرتبه O(n²)). همیشه سعی کنید با استفاده از الگوریتمهای بهتر یا ساختارهایی مثل HashMap، نیاز به حلقههای تودرتو را به حداقل برسانید.
۲. بهینهسازی شرطها (Early Return)
یکی از اصولیترین روشها برای نوشتن کدهای تمیز، استفاده از Early Return است. به جای نوشتن شرطهای تو در تو (Nested Ifs)، ابتدا حالتهای خطا را چک کرده و از متد خارج شوید. این کار باعث میشود کد شما "تخت" (Flat) و خواناتر شود.
۳. امنیت و اعتبارسنجی (Validation)
کنترل جریان فقط برای منطق برنامه نیست؛ بلکه برای امنیت هم حیاتی است. همیشه ورودیهای کاربر را قبل از پردازش با استفاده از شرطها اعتبارسنجی کنید تا از بروز مشکلاتی مثل NullPointerException یا حملات تزریق کد جلوگیری شود.
تمرینهای عملی
برای تثبیت یادگیری این درس تمرینهای زیر را حل کنید
یک آرایه رشتهای به نام fruits با مقادیر Apple، Banana و Cherry بسازید. سپس میوه دوم (Banana) را چاپ کنید.
public class Main {
public static void main(String[] args) {
String[] fruits = {"Apple", "Banana", "Cherry"};
System.out.println(fruits[1]);
}
}
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.