ساختار داده (Data Structures)
«ساختار داده (Data Structure)» یعنی روش چیدن داده ها. با چیدمان بهتر، دسترسی سریع تر می شود. مثل کیف مدرسه که دفتر و کتاب را جداسازی می کنی. در جاوا، نمونه ساده «آرایه (Array)» است. اما گزینه های بیشتری در بسته java.util داریم.
ساختار داده در جاوا
جاوا ابزارهای متنوعی دارد. هرکدام برای نیاز خاصی مناسب اند. نمونه های رایج: ArrayList، HashSet، و HashMap.
ArrayList
ArrayList مثل آرایه کشسان است. اندازه اش رشد می کند. سپس با اندیس به هر عنصر می رسی. مثل لیست حضور که شماره ردیف داری.
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
System.out.println(cars);
}
}
HashSet
HashSet مجموعه بدون تکرار است. یعنی هر آیتم یکتا است. مثل لیست دانش آموزانِ کلاس، بدون اسم تکراری.
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
HashSet<String> cars = new HashSet<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("BMW");
cars.add("Mazda");
System.out.println(cars);
}
}
نکته: افزودن مقدار تکراری اثری ندارد. عنصر تکراری ذخیره نمی شود.
HashMap
HashMap داده را با «کلید-مقدار» نگه می دارد. کلید یکتا است. مثل دفترچه تلفن: نام ← شماره.
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
HashMap<String, String> capitalCities = new HashMap<String, String>();
capitalCities.put("England", "London");
capitalCities.put("Germany", "Berlin");
capitalCities.put("Norway", "Oslo");
capitalCities.put("USA", "Washington DC");
System.out.println(capitalCities);
}
}
مرور سریع ساختارها
| ساختار | چه ذخیره می کند؟ | ترتیب را نگه می دارد؟ | تکراری مجاز؟ | کاربرد اصلی |
|---|---|---|---|---|
| ArrayList | عناصرِ مرتب | بله | بله | دسترسی با اندیس |
| HashSet | عناصر یکتا | خیر | خیر | حذف تکرار، چک سریع |
| HashMap | کلید-مقدار | خیر | بله (کلید یکتا) | یافتن با کلید |
Iterator چیست؟
«ایتریتور (Iterator)» ابزار پیمایش است. یعنی عنصرها را پشت سرهم می خوانی. مثل ورق زدن کارت های حافظه بازی.
import java.util.ArrayList;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
Iterator<String> it = cars.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
}
گام های تمرینی
- یکی از ساختارها را انتخاب کن.
- چند عنصر نمونه اضافه کن.
- با println نتیجه را ببین.
نکته: برای مرور عمیق تر به ساختار داده در مجموعه ها مراجعه کن.
همچنین مطالب مرتبط: BufferedReader برای خواندن متن، و BufferedWriter برای نوشتن کارآمد.
جمع بندی سریع
- ArrayList برای ترتیب و اندیس مناسب است.
- HashSet تکراری ها را حذف می کند.
- HashMap جفتِ کلید-مقدار نگه می دارد.
- Iterator پیمایش امن و ساده می دهد.