آرایه ها در جاوا: ویژگی ها، استفاده و سناریوهای زندگی واقعی

این مقاله به بررسی ویژگیهای آرایهها در جاوا، مانند اندازه ثابت، دسترسی کارآمد، و ایمنی نوع آنها میپردازد، در حالی که آنها را با انواع مجموعه پویا مانند ArrayList مقایسه میکند. همچنین سناریوهای واقعی مانند ذخیره مقادیر محصول، تغییر دمای روزانه و مرتبسازی نمرات دانشآموزان را برای نشان دادن کاربردهای عملی آرایهها در جاوا فراهم میکند.
در جاوا، آرایه ها یک ساختار داده اساسی هستند که به توسعه دهندگان اجازه می دهد چندین مقدار از یک نوع را در یک متغیر ذخیره کنند. آرایه ها به دلیل اندازه ثابت و قابلیت دسترسی مستقیم، راهی کارآمد برای مدیریت و دستکاری داده ها ارائه می کنند. این مقاله ویژگیهای آرایههای جاوا را بررسی میکند، آنها را با انواع مجموعههای دیگر مانند ArrayList مقایسه میکند، و سناریوهای واقعی را ارائه میکند که در آن آرایهها مفید هستند. درک خواص و کاربردهای آرایه ها برای ساختن برنامه های جاوا کارآمد ضروری است.
در زیر لیستی از ویژگی های آرایه در جاوا آمده است:
- اندازه ثابت: پس از تعریف، اندازه یک آرایه قابل تغییر نیست.
- سفارش داد: آرایه ها عناصر را در یک ترتیب متوالی ذخیره می کنند، به این معنی که عناصر را می توان با شاخص آنها در زمان ثابت دسترسی داشت.
- کارایی: دسترسی به هر عنصر در یک آرایه یک عملیات زمان ثابت است. آرایه ها سربار حافظه بسیار کمی دارند زیرا یک نوع داده را ذخیره می کنند.
- نوع تک: آرایه های جاوا تایپ می شوند، به این معنی که آنها فقط می توانند عناصری از همان نوع داده ای را که در اعلان آرایه اعلام شده است ذخیره کنند.
آرایه ها با ArrayList که لیست هستند و بخشی از واسط مجموعه هستند متفاوت هستند. یک رابط در جاوا یک نوع مرجع است، شبیه به یک کلاس، که میتواند فقط شامل ثابتها، متدهای پیشفرض، متدهای استاتیک و انواع تودرتو باشد (Tutorials Point, nd). در مورد واسط مجموعه، متدهایی مانند add()، remove()، get() و size() در میان سایر موارد (Oracle Doc., nd) را شامل می شود. این به انواع مختلفی از کلاس های لیست مانند ArrayList، LinkedList و سایر کلاس های Set اجازه می دهد تا از آن متدها استفاده کنند.
توجه داشته باشید که آرایه ها بخشی از واسط مجموعه نیستند. به عبارت دیگر، آنها روش های مرتبط با آنها را ندارند.
سناریوهای واقعی برای استفاده از آرایه ها
سناریوی 1 مقادیر محصول را در یک فروشگاه ذخیره کنید:
از یک آرایه می توان برای پیگیری مقادیر محصولات مختلف در یک فروشگاه استفاده کرد. به عنوان مثال، هر عنصر آرایه نشان دهنده مقدار یک محصول خاص است.
public class Main {
public static void main(String[] args) {
// Stores product quantities
int[] quantities = new int[4];
// Storing product quantities
quantities[0] = 50;
quantities[1] = 30;
quantities[2] = 20;
quantities[3] = 40;
// Prints the product quantities
for (int i = 0; i < quantities.length; i++) {
System.out.println("Product " + (i + 1) + " Quantity: "
+ quantities[i]);
}
}
}
خروجی ها:
Product 1 Quantity: 50
Product 2 Quantity: 30
Product 3 Quantity: 20
Product 4 Quantity: 40
سناریو 2:
از یک آرایه می توان برای ذخیره و تغییر دمای روزانه استفاده کرد.
public class Main {
public static void main(String[] args) {
// Stores daily temperatures
int[] temperatures = {68, 70, 75, 72, 69, 71, 73};
// Prints initial temperatures
System.out.println("Initial daily temperatures:");
printTemperatures(temperatures);
// Modifies temperatures
modifyTemperature(temperatures, 2, 78);
modifyTemperature(temperatures, 5, 74);
// Prints updated temperatures
System.out.println("\nUpdated daily temperatures:");
printTemperatures(temperatures);
}
// Method to print all temperatures
public static void printTemperatures(int[] temperatures) {
String[] days = {"Monday", "Tuesday", "Wednesday", "Thursday",
"Friday","Saturday", "Sunday"};
for (int i = 0; i < temperatures.length; i++) {
System.out.println(days[i] + ": " + temperatures[i] + "°F");
}
}
// Method to modify a temperature
public static void modifyTemperature(int[] temperatures, int dayIndex,
int newTemperature) {
if (dayIndex >= 0 && dayIndex < temperatures.length) {
temperatures[dayIndex] = newTemperature;
} else {
System.out.println("Invalid day index!");
}
}
}
خروجی ها:
Initial daily temperatures:
Monday: 68°F
Tuesday: 70°F
Wednesday: 75°F
Thursday: 72°F
Friday: 69°F
Saturday: 71°F
Sunday: 73°F
Updated daily temperatures:
Monday: 68°F
Tuesday: 70°F
Wednesday: 78°F
Thursday: 72°F
Friday: 69°F
Saturday: 74°F
Sunday: 73°F
سناریو-3:
از یک آرایه می توان برای ذخیره و مرتب کردن نمرات دانش آموزان در یک کلاس خاص استفاده کرد.
import java.util.Arrays;public class Main{
public static void main(String[] args) {
// Two-dimensional array to store student IDs and their grades
int[][] studentGrades = {
{1, 85}, // {Student ID, Grade}
{2, 90},
{3, 78},
{4, 92},
{5, 88}
};
// Prints initial student grades
System.out.println("Initial student grades:");
printAllGrades(studentGrades);
// Sorting grades from lowest to highest
sortGrades(studentGrades);
// Printing sorted student grades
System.out.println("\nSorted student grades:");
printAllGrades(studentGrades);
}
// Prints all grades
public static void printAllGrades(int[][] studentGrades) {
for (int i = 0; i < studentGrades.length; i++) {
System.out.println("Student ID " + studentGrades[i][0]
+ ": " + studentGrades[i][1]);
}
}
// Sorts grades
public static void sortGrades(int[][] studentGrades) {
Arrays.sort(studentGrades, (a, b) -> Integer.compare(a[1], b[1]));
}
}
خروجی ها
Initial student grades:
Student ID 1: 85
Student ID 2: 90
Student ID 3: 78
Student ID 4: 92
Student ID 5: 88
Sorted student grades:
Student ID 3: 78
Student ID 1: 85
Student ID 5: 88
Student ID 2: 90
Student ID 4: 92
به طور خلاصه، آرایه های جاوا دارای اندازه ثابت هستند، آنها مقادیر متعددی از یک نوع را ذخیره می کنند. آنها با استفاده از شاخصها، دسترسی کارآمد و ثابتی به عناصر ارائه میدهند، و آنها را برای سناریوهایی که سربار حافظه و سرعت نگران کننده هستند، مناسب میسازند. در حالی که آرایهها انعطافپذیری مجموعههایی مانند ArrayList را فراهم نمیکنند، اما همچنان بخشی ارزشمند از جعبه ابزار جاوا برای مدیریت کارآمد دادههای سفارشدادهشده هستند.
مراجع:
Oracle Doc. (دوم). مجموعه (Java SE 21) [Java Platform, Standard Edition Java API Specification]. اوراکل. برگرفته از https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Collection.html/
نکته آموزشی (دوم). رابط های جاوا. نکته آموزشی برگرفته از https://www.tutorialspoint.com/java/java_interfaces.htm
در ابتدا در Alex.omegapy در Medium منتشر شده توسط Level UP Coding در 16 اکتبر 2024 منتشر شد.