ความแตกต่างที่สำคัญ – ArrayList vs LinkedList
คอลเลกชันมีประโยชน์สำหรับการจัดเก็บข้อมูล ในอาร์เรย์ปกติ ขนาดอาร์เรย์จะคงที่ บางครั้งจำเป็นต้องสร้างอาร์เรย์ที่สามารถเติบโตได้ตามต้องการ ภาษาการเขียนโปรแกรมเช่น Java มีคอลเล็กชัน เป็นเฟรมเวิร์กที่มีชุดของคลาสและอินเทอร์เฟซ มันทำหน้าที่เป็นภาชนะสำหรับกลุ่มขององค์ประกอบ คอลเล็กชันอนุญาตให้จัดเก็บ อัปเดต เรียกชุดองค์ประกอบ ช่วยในการทำงานกับโครงสร้างข้อมูล เช่น รายการ ชุด ต้นไม้ และแผนที่ รายการนี้เป็นอินเทอร์เฟซของกรอบงานการรวบรวม ArrayList และ LinkedList เป็นสองคลาสในเฟรมเวิร์กคอลเล็กชัน พวกเขาใช้อินเทอร์เฟซการรวบรวมและอินเทอร์เฟซรายการบทความนี้กล่าวถึงความแตกต่างระหว่าง ArrayList และ LinkedList ArrayList เป็นคลาสที่ขยาย AbstractList และใช้อินเทอร์เฟซ List ซึ่งใช้อาร์เรย์ไดนามิกภายในเพื่อจัดเก็บองค์ประกอบข้อมูล LinkedList เป็นคลาสที่ขยาย AbstractSequentialList และใช้อินเทอร์เฟซ List, Deque และ Queue ซึ่งใช้รายการที่เชื่อมโยงภายในเป็นสองเท่าเพื่อจัดเก็บองค์ประกอบข้อมูล นั่นคือข้อแตกต่างที่สำคัญระหว่าง ArrayList และ LinkedList
ArrayList คืออะไร
คลาส ArrayList ใช้สำหรับสร้างไดนามิกอาร์เรย์ ไม่เหมือนกับอาร์เรย์ทั่วไป ขนาดของอาร์เรย์ไดนามิกจะไม่คงที่ วัตถุที่สร้างโดยใช้คลาส ArrayList ได้รับอนุญาตให้เก็บชุดขององค์ประกอบในรายการ ความจุเพิ่มขึ้นโดยอัตโนมัติ ดังนั้นโปรแกรมเมอร์จึงสามารถเพิ่มองค์ประกอบลงในรายการได้ คลาส ArrayList ขยายคลาส AbstractList ที่ใช้อินเทอร์เฟซรายการ ดังนั้นเมธอดของอินเทอร์เฟซ List จึงสามารถใช้ได้โดย ArrayList ในการเข้าถึงองค์ประกอบ ใช้เมธอด get()วิธีการ add() สามารถใช้เพื่อเพิ่มองค์ประกอบในรายการ วิธีการลบ () ใช้เพื่อลบองค์ประกอบออกจากรายการ อ้างอิงโปรแกรมด้านล่าง
รูปที่ 01: ตัวอย่าง ArrayList
ตามโปรแกรมด้านบน วัตถุของ ArrayList จะถูกสร้างขึ้น คุณสามารถเพิ่มองค์ประกอบไดนามิกโดยใช้วิธีการเพิ่ม องค์ประกอบ “A”,”B”,”C”,”D” และ “E” ถูกเพิ่มโดยใช้วิธีการเพิ่ม วิธีการลบใช้เพื่อลบองค์ประกอบออกจากรายการ เมื่อส่งผ่าน 4 ไปยังวิธีการลบ ตัวอักษรในดัชนีที่ 4 คือ “E” จะถูกลบออกจากรายการ เมื่อวนซ้ำรายการโดยใช้ลูป for ตัวอักษร A, B, C และ D จะพิมพ์ออกมา
LinkedList คืออะไร
คล้ายกับ ArrayList LinkedList ใช้เพื่อจัดเก็บองค์ประกอบข้อมูลแบบไดนามิก วัตถุที่สร้างขึ้นโดยใช้คลาส LinkedList ได้รับอนุญาตให้เก็บชุดขององค์ประกอบในรายการ ความจุเพิ่มขึ้นโดยอัตโนมัติ ดังนั้นโปรแกรมเมอร์จึงสามารถเพิ่มองค์ประกอบลงในรายการได้ ภายในใช้รายการที่เชื่อมโยงเป็นสองเท่าเพื่อเก็บข้อมูล ในรายการที่เชื่อมโยงแบบทวีคูณ ข้อมูลจะถูกเก็บไว้เป็นโหนด แต่ละโหนดมีสองลิงก์ ลิงค์แรกชี้ไปที่โหนดก่อนหน้า ลิงค์ถัดไปชี้ไปที่โหนดถัดไปในลำดับ
คลาส LinkedList ขยายคลาส AbstractSequentialList และใช้อินเทอร์เฟซรายการ ดังนั้นเมธอดของอินเทอร์เฟซ List จึงสามารถใช้ได้โดย LinkedList สามารถใช้เมธอด get() เพื่อเข้าถึงองค์ประกอบของรายการ วิธีการ add() สามารถใช้เพื่อเพิ่มองค์ประกอบในรายการ วิธีการลบ () ใช้เพื่อลบองค์ประกอบออกจากรายการ อ้างอิงโปรแกรมด้านล่าง
รูปที่ 02: ตัวอย่างกับ LinkedList
ตามโปรแกรมด้านบน วัตถุของ LinkedList จะถูกสร้างขึ้น คุณสามารถเพิ่มองค์ประกอบไดนามิกโดยใช้วิธีการเพิ่ม องค์ประกอบ “A”,”B”,”C”,”D” และ “E” ถูกเพิ่มโดยใช้วิธีการเพิ่ม วิธีการลบใช้เพื่อลบองค์ประกอบออกจากรายการ เมื่อส่งผ่าน 4 ไปยังวิธีการลบ ตัวอักษรในดัชนีที่ 4 คือ “E” จะถูกลบออกจากรายการ เมื่อวนซ้ำโดยใช้ for loop ตัวอักษร A, B, C และ D จะพิมพ์ออกมา
ความคล้ายคลึงกันระหว่าง ArrayList และ LinkedList คืออะไร
- ทั้ง ArrayList และ LinkedList ใช้อินเทอร์เฟซรายการ
- ทั้ง ArrayList และ LinkedList สามารถมีองค์ประกอบที่ซ้ำกัน
- ทั้ง ArrayList และ LinkedList รักษาลำดับการแทรก
ArrayList และ LinkedList ต่างกันอย่างไร
ArrayList กับ LinkedList |
|
ArrayList เป็นคลาสที่ขยาย AbstractList และใช้อินเทอร์เฟซรายการซึ่งใช้อาร์เรย์ไดนามิกภายในเพื่อจัดเก็บองค์ประกอบข้อมูล | LinkedList เป็นคลาสที่ขยาย AbstractSequentialList และใช้อินเทอร์เฟซ List, Deque, Queue ซึ่งใช้รายการที่เชื่อมโยงภายในเป็นสองเท่าเพื่อจัดเก็บองค์ประกอบข้อมูล |
การเข้าถึงองค์ประกอบ | |
การเข้าถึงองค์ประกอบของ ArrayList นั้นเร็วกว่า LinkedList | การเข้าถึงองค์ประกอบของ LinkedList ช้ากว่า ArrayList |
จัดการองค์ประกอบ | |
การจัดการองค์ประกอบของ ArrayList ช้ากว่า LinkedList | การจัดการองค์ประกอบของ LinkedList นั้นเร็วกว่า ArrayList |
พฤติกรรม | |
ArrayList ดำเนินการเป็นรายการ | LinkedList ดำเนินการเป็นรายการและคิว |
สรุป – ArrayList vs LinkedList
เฟรมเวิร์กการรวบรวมช่วยให้ทำงานกับโครงสร้างข้อมูล เช่น รายการ ต้นไม้ แผนที่ และชุด รายการเป็นส่วนต่อประสานของกรอบงานการรวบรวม บทความนี้กล่าวถึงความแตกต่างระหว่าง ArrayList และ LinkedList ArrayList เป็นคลาสที่ขยาย AbstractList และใช้อินเทอร์เฟซ List ที่ใช้อาร์เรย์ไดนามิกภายในเพื่อจัดเก็บองค์ประกอบข้อมูลLinkedList เป็นคลาสที่ขยาย AbstractSequentialList และใช้อินเทอร์เฟซ List, Deque, Queue ซึ่งใช้รายการที่เชื่อมโยงภายในเป็นสองเท่าเพื่อจัดเก็บองค์ประกอบข้อมูล นั่นคือความแตกต่างระหว่าง ArrayList และ LinkedList