Java LinkedList
Java LinkedList
ในบทที่แล้ว คุณได้เรียนรู้เกี่ยวกับ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 |