خصائص Set في Dart

خصائص Set في Dart

في Dart، تمتلك كائنات Set مجموعة من الخصائص التي تساعد في التعامل مع البيانات بفعالية وسهولة. هذه الخصائص توفر معلومات عن المجموعة وتمكن من تنفيذ عمليات أساسية عليها.


1. length

  • تعيد عدد العناصر الموجودة في الـ Set.

مثال:

dartCopyEdit<code>void main() {
  Set<int> numbers = {1, 2, 3, 4, 5};
  print('عدد العناصر: ${numbers.length}'); // 5
}
</code>
Dart

2. isEmpty

  • تعيد true إذا كانت المجموعة فارغة، وإلا تعيد false.

مثال:

dartCopyEdit<code>void main() {
  Set<String> names = {};
  print('هل المجموعة فارغة؟ ${names.isEmpty}'); // true
}
</code>
Dart

3. isNotEmpty

  • تعيد true إذا كانت المجموعة تحتوي على عناصر، وإلا تعيد false.

مثال:

dartCopyEdit<code>void main() {
  Set<String> colors = {'Red', 'Green'};
  print('هل المجموعة غير فارغة؟ ${colors.isNotEmpty}'); // true
}
</code>
Dart

4. first

  • تعيد أول عنصر موجود في المجموعة.

مثال:

dartCopyEdit<code>void main() {
  Set<String> fruits = {'Apple', 'Banana', 'Mango'};
  print('أول عنصر: ${fruits.first}'); // Apple
}
</code>
Dart

5. last

  • تعيد آخر عنصر في المجموعة.

مثال:

dartCopyEdit<code>void main() {
  Set<int> numbers = {10, 20, 30, 40};
  print('آخر عنصر: ${numbers.last}'); // 40
}
</code>
Dart

6. contains(element)

  • تتحقق مما إذا كانت المجموعة تحتوي على عنصر معين.

مثال:

dartCopyEdit<code>void main() {
  Set<int> numbers = {1, 2, 3, 4, 5};
  print(numbers.contains(3)); // true
  print(numbers.contains(6)); // false
}
</code>
Dart

7. hashCode

  • تعيد قيمة رقمية تمثل الرمز الفريد لكائن الـ Set.

مثال:

dartCopyEdit<code>void main() {
  Set<String> items = {'Book', 'Pen', 'Notebook'};
  print('الرمز الفريد للمجموعة: ${items.hashCode}');
}
</code>
Dart

8. iterator

  • تُستخدم للحصول على كائن Iterator يمكن من خلاله التكرار على عناصر المجموعة.

مثال:

dartCopyEdit<code>void main() {
  Set<String> fruits = {'Apple', 'Banana', 'Mango'};
  var iterator = fruits.iterator;

  while (iterator.moveNext()) {
    print('العنصر: ${iterator.current}');
  }
}
</code>
Dart

ملخص

  • الخصائص في Set توفر طريقة فعّالة للوصول إلى معلومات المجموعة والتفاعل مع بياناتها.
  • تساعد هذه الخصائص في كتابة كود نظيف وفعّال لتحليل ومعالجة البيانات.


9. add(element)

  • تضيف عنصرًا إلى المجموعة إذا لم يكن موجودًا بالفعل.

مثال:

dartCopyEdit<code>void main() {
  Set<int> numbers = {1, 2, 3};
  numbers.add(4);
  numbers.add(2); // لن يتم إضافته لأنه موجود مسبقًا
  print(numbers); // {1, 2, 3, 4}
}
</code>
Dart

10. addAll(iterable)

  • تضيف مجموعة من العناصر دفعة واحدة.

مثال:

dartCopyEdit<code>void main() {
  Set<int> numbers = {1, 2, 3};
  numbers.addAll([4, 5, 6]);
  print(numbers); // {1, 2, 3, 4, 5, 6}
}
</code>
Dart

11. remove(element)

  • تزيل عنصرًا محددًا من المجموعة إذا كان موجودًا.

مثال:

dartCopyEdit<code>void main() {
  Set<String> colors = {'Red', 'Green', 'Blue'};
  colors.remove('Green');
  print(colors); // {Red, Blue}
}
</code>
Dart

12. removeAll(elements)

  • تزيل مجموعة من العناصر دفعة واحدة.

مثال:

dartCopyEdit<code>void main() {
  Set<int> numbers = {1, 2, 3, 4, 5};
  numbers.removeAll([2, 4]);
  print(numbers); // {1, 3, 5}
}
</code>
Dart

13. retainAll(elements)

  • تحتفظ بالعناصر الموجودة في القائمة المحددة وتزيل العناصر الأخرى.

مثال:

dartCopyEdit<code>void main() {
  Set<int> numbers = {1, 2, 3, 4, 5};
  numbers.retainAll([2, 4]);
  print(numbers); // {2, 4}
}
</code>
Dart

14. clear()

  • تزيل جميع العناصر من المجموعة.

مثال:

dartCopyEdit<code>void main() {
  Set<int> numbers = {1, 2, 3};
  numbers.clear();
  print(numbers); // {}
}
</code>
Dart

15. toList()

  • تحول المجموعة إلى قائمة.

مثال:

dartCopyEdit<code>void main() {
  Set<String> fruits = {'Apple', 'Banana', 'Mango'};
  List<String> fruitsList = fruits.toList();
  print(fruitsList); // [Apple, Banana, Mango]
}
</code>
Dart

16. difference(Set other)

  • تعيد الفرق بين مجموعتين.

مثال:

dartCopyEdit<code>void main() {
  Set<int> set1 = {1, 2, 3, 4};
  Set<int> set2 = {3, 4, 5};

  var differenceSet = set1.difference(set2);
  print(differenceSet); // {1, 2}
}
</code>
Dart

17. containsAll(Iterable)

  • تتحقق من احتواء المجموعة على جميع العناصر في القائمة.

مثال:

dartCopyEdit<code>void main() {
  Set<int> numbers = {1, 2, 3, 4, 5};
  print(numbers.containsAll([1, 3])); // true
  print(numbers.containsAll([1, 6])); // false
}
</code>
Dart

18. retainWhere(bool test(element))

  • تحتفظ بالعناصر التي تحقق الشرط المحدد.

مثال:

dartCopyEdit<code>void main() {
  Set<int> numbers = {1, 2, 3, 4, 5, 6};
  numbers.retainWhere((num) => num % 2 == 0);
  print(numbers); // {2, 4, 6}
}
</code>
Dart

19. union(Set other)

  • تعيد اتحاد مجموعتين.

مثال:

dartCopyEdit<code>void main() {
  Set<int> set1 = {1, 2, 3};
  Set<int> set2 = {3, 4, 5};

  var unionSet = set1.union(set2);
  print(unionSet); // {1, 2, 3, 4, 5}
}
</code>
Dart

20. intersection(Set other)

  • تعيد العناصر المشتركة بين مجموعتين.

مثال:

dartCopyEdit<code>void main() {
  Set<int> set1 = {1, 2, 3, 4};
  Set<int> set2 = {3, 4, 5, 6};

  var intersectionSet = set1.intersection(set2);
  print(intersectionSet); // {3, 4}
}
</code>
Dart

ملخص

  • يحتوي Set في Dart على مجموعة واسعة من الخصائص والوظائف التي تجعله أداة فعالة لإدارة البيانات الفريدة.
  • يُفضل استخدام Set في الحالات التي تتطلب التأكد من عدم وجود عناصر مكررة أو في العمليات الرياضية بين المجموعات.