- Published on
Collections در جاوا
- نویسندگان
- نام
- هومن امینی
- توییتر
- @HoomanAmini
در زبان جاوا، Collections Framework یکی از قدرتمندترین ابزارها برای مدیریت و پردازش دادهها به صورت گروهی است. این چارچوب شامل کلاسها و اینترفیسهایی برای ذخیرهسازی و مدیریت دادهها به روشهای متنوع است. در این مقاله، ما به بررسی مفاهیم، ساختارها، و مثالهایی برای درک بهتر این فریمورک میپردازیم.
Collections Framework چیست؟
Collections Framework مجموعهای از کلاسها و اینترفیسها است که برای ذخیره و مدیریت دادهها طراحی شده است. این چارچوب شامل:
- اینترفیسها: قراردادهایی که کلاسها برای پیادهسازی ساختارهای داده باید رعایت کنند (مثل
List
,Set
,Queue
,Map
). - کلاسهای پیادهسازی: کلاسهایی که ساختارهای داده را ارائه میدهند (مثل
ArrayList
,HashSet
,HashMap
). - الگوریتمها: متدهایی برای انجام عملیات روی مجموعهها (مثل مرتبسازی، جستجو، و موارد دیگر).
مفهوم پایه اینترفیسهای Collections
1. List
یک لیست مجموعهای است که میتواند مقادیر تکراری را ذخیره کند و ترتیب درج عناصر را حفظ میکند. مهمترین پیادهسازیهای List
عبارتند از:
- ArrayList
- LinkedList
- Vector
مثال:
import java.util.ArrayList;
public class ListExample {
public static void main(String[] args) {
// ایجاد یک لیست از نوع ArrayList
ArrayList<String> names = new ArrayList<>();
names.add("Ali");
names.add("Sara");
names.add("Ali"); // مقدار تکراری مجاز است
// نمایش عناصر لیست
for (String name : names) {
System.out.println(name);
}
}
}
2. Set
یک مجموعه که مقادیر تکراری را نمیپذیرد و ترتیب عناصر را حفظ نمیکند. مهمترین پیادهسازیهای Set
عبارتند از:
- HashSet: ترتیب عناصر را حفظ نمیکند.
- LinkedHashSet: ترتیب درج را حفظ میکند.
- TreeSet: عناصر را مرتب نگه میدارد.
مثال:
import java.util.HashSet;
public class SetExample {
public static void main(String[] args) {
// ایجاد یک مجموعه از نوع HashSet
HashSet<String> cities = new HashSet<>();
cities.add("Tehran");
cities.add("Shiraz");
cities.add("Tehran"); // مقدار تکراری ذخیره نمیشود
// نمایش عناصر مجموعه
for (String city : cities) {
System.out.println(city);
}
}
}
3. Map
Map
ساختاری است که کلید-مقدار (Key-Value) ذخیره میکند. کلیدها یکتا هستند، اما مقادیر میتوانند تکراری باشند. مهمترین پیادهسازیهای Map
عبارتند از:
- HashMap
- LinkedHashMap
- TreeMap
مثال:
import java.util.HashMap;
public class MapExample {
public static void main(String[] args) {
// ایجاد یک Map از نوع HashMap
HashMap<String, Integer> scores = new HashMap<>();
scores.put("Ali", 90);
scores.put("Sara", 85);
scores.put("Ali", 95); // مقدار قبلی بازنویسی میشود
// نمایش عناصر Map
for (String key : scores.keySet()) {
System.out.println(key + ": " + scores.get(key));
}
}
}
4. Queue
Queue
یک ساختار داده است که معمولاً برای صف (FIFO) استفاده میشود. مهمترین پیادهسازیها:
- PriorityQueue: عناصر را بر اساس اولویت ذخیره میکند.
- LinkedList: هم به عنوان لیست و هم به عنوان صف قابل استفاده است.
مثال:
import java.util.LinkedList;
import java.util.Queue;
public class QueueExample {
public static void main(String[] args) {
Queue<String> queue = new LinkedList<>();
queue.add("Task1");
queue.add("Task2");
queue.add("Task3");
while (!queue.isEmpty()) {
System.out.println("Processing: " + queue.poll());
}
}
}
الگوریتمهای Collections
Collections
کلاس کمکیای است که الگوریتمهایی مثل مرتبسازی و جستجو را فراهم میکند.
مرتبسازی:
import java.util.ArrayList;
import java.util.Collections;
public class SortingExample {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(5);
numbers.add(1);
numbers.add(3);
// مرتبسازی
Collections.sort(numbers);
System.out.println(numbers);
}
}
جستجو:
import java.util.ArrayList;
import java.util.Collections;
public class SearchExample {
public static void main(String[] args) {
ArrayList<String> names = new ArrayList<>();
names.add("Ali");
names.add("Sara");
names.add("Maryam");
// مرتبسازی برای جستجو
Collections.sort(names);
// جستجو
int index = Collections.binarySearch(names, "Sara");
System.out.println("Index of Sara: " + index);
}
}
مزایای Collections Framework
- سادهسازی مدیریت دادهها: ارائه ابزارهای آماده برای ذخیره و پردازش.
- انعطافپذیری: انتخاب پیادهسازی مناسب برای نیازهای خاص.
- عملکرد بالا: بهینهسازیشده برای مدیریت دادههای حجیم.
- استفاده از الگوریتمهای از پیش تعریفشده: مانند مرتبسازی و جستجو.
جمعبندی
Collections Framework
در جاوا ابزاری قدرتمند برای مدیریت دادهها است که با ارائه انواع مختلف ساختارهای داده و الگوریتمهای مرتبط، کار توسعهدهندگان را سادهتر و سریعتر میکند. انتخاب صحیح نوع Collection به شما کمک میکند تا برنامههای بهینهتر و قابل نگهداریتری ایجاد کنید.
برای تمرین بیشتر، توصیه میشود از پروژههای عملی استفاده کنید تا مفاهیم را بهتر درک کنید.