Data Classes في المجموعات
استخدموها في الخرائط والمجموعات
Data Classes في المجموعات درس مجاني في Kotlin Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Kotlin Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Kotlin Academy 4 دروس في المجموع.
تفاعل Data Class مع المجموعات
بما أن data class تملك equals وhashCode يعتمدان على القيمة، فإنها تعمل بكفاءة داخل المجموعات.
يوضح هذا الدرس كيفية عمل data class في القوائم والمجموعات وMap.
Data Class في قائمة
خزّن كائنات البيانات في قائمة وكرّر عليها كما تفعل مع أي عناصر أخرى.
تجعل toString القابلة للقراءة طباعتها سهلة.
data class User(val name: String, val age: Int)
fun main() {
val users = listOf(User("Alice", 30), User("Bob", 25))
for (u in users) println(u)
}يعمل contains حسب القيمة
بما أن equals تقارن القيم، فإن contains تعثر على كائن مساوٍ حتى إن كان نسخةً مختلفة.
لا تحتاج إلى المرجع نفسه تمامًا.
data class User(val name: String, val age: Int)
fun main() {
val users = listOf(User("Alice", 30))
println(users.contains(User("Alice", 30)))
}إزالة التكرارات باستخدام Set
ترفض Set العناصر المكررة باستخدام equals وhashCode.
ويُعد كائنان من البيانات لهما القيم نفسها عنصرًا واحدًا.
data class Point(val x: Int, val y: Int)
fun main() {
val set = setOf(Point(1, 1), Point(1, 1), Point(2, 2))
println(set.size)
}Data Class كمفاتيح في Map
تُعد data class مفتاحًا ممتازًا في Map لأن عمليات البحث تعتمد على مساواة القيم.
يمكنك إنشاء كائن مفتاح عند الحاجة، ومع ذلك العثور على القيمة المخزنة.
data class Coord(val x: Int, val y: Int)
fun main() {
val grid = mapOf(Coord(0, 0) to "start", Coord(1, 1) to "goal")
println(grid[Coord(1, 1)])
}Data Class كقيم في Map
وبالطبع يمكن أن تكون data class هي القيم أيضًا، لتمثيل سجلات غنية مرتبطة بمعرّف.
هذا شكل شائع لعمليات البحث داخل الذاكرة.
data class User(val name: String, val age: Int)
fun main() {
val byId = mapOf(1 to User("Alice", 30))
println(byId[1]?.name)
}تصفية المجموعات
اجمع بين data class ودوال المجموعات مثل filter للاستعلام عن بياناتك.
ويمكن لـ lambda الوصول إلى الخصائص مباشرةً.
data class User(val name: String, val age: Int)
fun main() {
val users = listOf(User("A", 20), User("B", 40))
val adults = users.filter { it.age >= 30 }
println(adults)
}التحويل إلى خصائص
استخدم map لتحويل مجموعة من الكائنات إلى مجموعة تحتوي على خاصية واحدة.
يستخرج ذلك البيانات التي تحتاج إليها فقط.
data class User(val name: String, val age: Int)
fun main() {
val users = listOf(User("Alice", 30), User("Bob", 25))
val names = users.map { it.name }
println(names)
}التجميع حسب خاصية
تحوّل groupBy قائمةً إلى Map مفاتيحها خاصية تختارها.
تُجمَّع المستخدمون هنا حسب مدينتهم.
data class User(val name: String, val city: String)
fun main() {
val users = listOf(User("A", "Paris"), User("B", "Paris"), User("C", "Rome"))
val byCity = users.groupBy { it.city }
println(byCity["Paris"]?.size)
}تحديث العناصر دون تغييرها
لتحديث عنصر في قائمة غير قابلة للتغيير، طبّق map عليها واستخدم copy مع العنصر المطابق.
والنتيجة قائمة جديدة تحتوي على كائن واحد متغير.
data class User(val name: String, val age: Int)
fun main() {
val users = listOf(User("Alice", 30), User("Bob", 25))
val updated = users.map { if (it.name == "Bob") it.copy(age = 26) else it }
println(updated)
}تجميع المفاهيم
تُعد data class عناصر مثالية للمجموعات:
- يعمل
containsوSet حسب القيمة - توفر مفاتيح آمنة وقابلة للمقارنة في Map
- تنسجم طبيعيًا مع
filterوmapوgroupBy - يتيح
copyإجراء تحديثات دون تغيير البيانات
data class User(val name: String, val age: Int)
fun main() {
val users = setOf(User("Alice", 30), User("Alice", 30))
println(users.size)
println(users.map { it.name })
}تحقق سريع
اختبر مدى فهمك لاستخدام data class في المجموعات.
مراجعة
لقد تعلمت كيفية عمل data class في المجموعات:
- تدعم مساواة القيم استخدام
containsوSet ومفاتيح Map - تنسجم مع
filterوmapوgroupBy - يدعم
copyإجراء تحديثات دون تغيير البيانات
وبذلك تكتمل دورة Data Classes and Destructuring.
الأسئلة الشائعة
هل درس «Data Classes في المجموعات» مجاني؟
نعم — نص درس «Data Classes في المجموعات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Kotlin Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Kotlin Academy 4 دروس في المجموع.
ماذا ستتعلم في «Data Classes في المجموعات»؟
استخدموها في الخرائط والمجموعات تتمرن على Kotlin Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Kotlin Academy؟
لا تُشترط خبرة سابقة. Kotlin Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «Data Classes في المجموعات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Kotlin Academy هذا؟
نعم. كل درس في Kotlin Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تعريف Data Classes
- copy وequals
- تصريحات التفكيك
- Data Classes في المجموعات