جافا لينكدليست
جافا لينكدليست
في الفصل السابق ، تعرفت على ArrayList
الفصل. الفئة LinkedList
متطابقة تقريبًا مع
ArrayList
:
مثال
// Import the LinkedList class
import java.util.LinkedList;
public class Main {
public static void main(String[] args) {
LinkedList<String> cars = new LinkedList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
System.out.println(cars);
}
}
ArrayList مقابل LinkedList
الفئة LinkedList
عبارة عن مجموعة يمكن أن تحتوي على العديد من الكائنات من نفس النوع ، تمامًا مثل ArrayList
.
يحتوي LinkedList
الفصل على جميع الطرق نفسها التي يستخدمها ArrayList
الفصل لأن كلاهما يقوم بتنفيذ List
الواجهة. هذا يعني أنه يمكنك إضافة عناصر وتغيير العناصر وإزالة العناصر ومسح القائمة بنفس الطريقة.
ومع ذلك ، في حين يمكن استخدام ArrayList
الفصل LinkedList
والفصل بنفس الطريقة ، إلا أنهما مبنيان بشكل مختلف تمامًا.
كيف يعمل ArrayList
يحتوي ArrayList
الفصل على مصفوفة منتظمة بداخله. عند إضافة عنصر ، يتم وضعه في المصفوفة. إذا لم تكن المصفوفة كبيرة بما يكفي ، يتم إنشاء مصفوفة جديدة أكبر لتحل محل القديم وتتم إزالة المجموعة القديمة.
كيف تعمل LinkedList
يخزن LinkedList
عناصره في "حاويات". تحتوي القائمة على رابط للحاوية الأولى ولكل حاوية رابط إلى الحاوية التالية في القائمة. لإضافة عنصر إلى القائمة ، يتم وضع العنصر في حاوية جديدة وترتبط تلك الحاوية بإحدى الحاويات الأخرى في القائمة.
متى يجب استخدام
استخدم ArrayList
لتخزين البيانات والوصول LinkedList
إليها وللتعامل معها.
طرق LinkedList
بالنسبة للعديد من الحالات ، ArrayList
يكون الأكثر كفاءة حيث أنه من الشائع أن تحتاج إلى الوصول إلى العناصر العشوائية في القائمة ، ولكن LinkedList
يوفر العديد من الطرق للقيام بعمليات معينة بشكل أكثر كفاءة:
Method | Description | Try it |
---|---|---|
addFirst() | Adds an item to the beginning of the list. | |
addLast() | Add an item to the end of the list | |
removeFirst() | Remove an item from the beginning of the list. | |
removeLast() | Remove an item from the end of the list | |
getFirst() | Get the item at the beginning of the list | |
getLast() | Get the item at the end of the list |