Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

Javaالكلاس LinkedHashSet في جافا

  • مقدمة
  • كونستركتورات الكلاس LinkedHashSet
  • دوال الكلاس LinkedHashSet
  • مثال شامل

مقدمة

الكلاس LinkedHashSet يرث من الكلاس HashSet تم تصميمه فقط للحفاظ على ترتيب العناصر التي يتم إدخالها فيه.
و هو يملك نفس الأشياء التي يملكها الكلاس HashSet.

إذاً الكلاس LinkedHashSet يستخدم لتخزين عناصر متتالية, و الحفاظ على الترتيب الذي تم فيه إدخال هذه العناصر, كما أنه يسمح بتخزين القيمة null.
لكنه لا يسمح بتخزين أكثر من عنصر عندهم نفس القيمة, فتجد كل عنصر فيه يملك قيمة مختلفة.

هنا لا يمكنك الوصول لعنصر محدد من عناصر كائن الـ LinkedHashSet لأن العناصر هنا لا تملك أرقام Index. لذلك لا يحتوي على أي دالة من دوال get().
إذاً هنا للوصول إلى عنصر ما عليك المرور على جميع العناصر الأخرى الموجودة في كائن الـ LinkedHashSet.


بناؤه

public class LinkedHashSet<E>
extends HashSet<E>
implements Set<E>, Cloneable, Serializable

إذاً الكلاس HashSet يرث من الكلاس AbstractSet, و يطبق الإنترفيسات Set - Cloneable - Serializable.

كونستركتورات الكلاس LinkedHashSet

الجدول التالي يحتوي على جميع الكونستركتورات الموجودين في الكلاس LinkedHashSet.

الكونستركتور مع تعريفه
1 public LinkedHashSet() هذا الكونستركتور الإفتراضي في الكلاس LinkedHashSet, يستخدم لإنشاء كائن نوعه LinkedHashSet ليس له حجم محدد.
2 public LinkedHashSet(int initialCapacity) يستخدم هذا الكونستركتور لتحديد حجم كائن الـ ArrayList الأولي.
الرقم الذي نضعه كـ Argument في هذا الكونستركتور يحدد عدد عناصر كائن الـ ArrayList الذي يمكنه احتوائهم على الأقل.
3 public LinkedHashSet(int capacity, float fillRatio) يستخدم هذا الكونستركتور لتحديد حجم كائن الـ LinkedHashSet الأولي الذي نريده أن يحجز له في الذاكرة.
الرقم الذي نضعه مكان الباراميتر capacity يحدد عدد العناصر التي يمكن أن يحتويها كائن الـ LinkedHashSet, و تذكر أن حجمه يزيد عند الحاجة.
الرقم الذي نضعه مكان الباراميتر fillRatio يمكن أن يكون بين 0.0f و 1.0f.
هنا يتم ضرب المتغيرين capacity و fillRatio ببعضهم, ناتج عملية الضرب يحدد متى سيتم زيادة حجم كائن الـ LinkedHashSet في الذاكرة.
4 public LinkedHashSet(Collection c) يستخدم هذا الكونستركتور لإنشاء كائن نوعه LinkedHashSet يحتوي على عناصر كائن الـ Collection الذي نمرره له كـ Argument.

دوال الكلاس LinkedHashSet

الجدول التالي يحتوي على جميع دوال الكلاس LinkedHashSet.

الدالة مع تعريفها
1 public boolean add(Object o) تضيف عنصر جديد في كائن الـ LinkedHashSet.
ترجع true إذا تمت الإضافة بنجاح.
2 public void clear() تمسح جميع العناصر الموجودة في كائن الـ LinkedHashSet.
3 public Object clone() تنشئ نسخة من كائن الـ LinkedHashSet.
4 public boolean contains(Object o) ترجع true إذا كان كائن الـ LinkedHashSet يحتوي على القيمة التي نضعها لها كـ Argument.
5 public boolean isEmpty() ترجع true في حال كان كائن الـ LinkedHashSet فارغاً.
6 public boolean remove(Object o) تحذف عنصر محدد من كائن الـ LinkedHashSet و ترجعه.
ترجع true إذا تم حذف الكائن بنجاح, غير ذلك ترجع false.
7 public int size() ترجع عدد العناصر الموجودة في كائن الـ LinkedHashSet.
8 public Iterator iterator() ترجع كائن نوعه Iterator يحتوي على جميع عناصر كائن الـ LinkedHashSet.

مثال شامل

في المثال التالي قمنا بتعريف كائن نوعه LinkedHashSet, إسمه lhs, ثم أدخلنا فيه 6 عناصر.

بعدها قمنا بعرض عناصر الكائن lhs, ثم عرضنا عددهم.


Main.java
import java.util.LinkedHashSet;        // LinkedHashSet هنا قمنا باستدعاء الكلاس
 
public class Main {
 
    public static void main(String[] args) {
 
        // lhs إسمه LinkedHashSet هنا قمنا بإنشاء كائن من الكلاس
        LinkedHashSet lhs = new LinkedHashSet();
 
        // lhs هنا قمنا بإدخال 6 عناصر في الكائن
        lhs.add("A");
        lhs.add("B");
        lhs.add("C");
        lhs.add("D");
        lhs.add("E");
        lhs.add("F");
 
        // lhs هنا قمنا بعرض عدد عناصر الكائن
        System.out.println("All elements: " + lhs + "\n");
 
        // لاحظ أنه لم يتم تخزينهم بالترتيب الذي أدخلناهم فيه .hs هنا قمنا بعرض عناصر الكائن
        System.out.println("Number of elements: " + lhs.size());
 
    }
 
}

سنحصل على النتيجة التالية عند التشغيل.

All elements: [A, B, C, D, E, F]

Number of elements: 6