LinkedList กับ ArrayList ใน Java: รู้ความแตกต่างที่สำคัญ



บทความ LinkedList vs ArrayList นี้จะให้การเปรียบเทียบที่เหมาะสมระหว่างรายการที่ใช้อินเทอร์เฟซรายการ

รายการ ใน Java เป็นอินเทอร์เฟซย่อยของ ที่ให้โซลูชันที่ดีที่สุดพร้อมแนวคิดต่างๆเช่นการเข้าถึงตำแหน่งการทำซ้ำและอื่น ๆ ในบทความนี้ฉันจะพูดถึงความแตกต่างที่สำคัญระหว่างอินเทอร์เฟซรายการ LinkedList กับ ArrayList ใน Java

ด้านล่างนี้เป็นหัวข้อที่กล่าวถึงในบทความนี้:





เอาล่ะ!

LinkedList คืออะไร?

หลังจาก อาร์เรย์ โครงสร้างข้อมูลยอดนิยมอันดับสองคือไฟล์ . รายการที่เชื่อมโยงคือโครงสร้างข้อมูลเชิงเส้นซึ่งประกอบด้วยไฟล์ห่วงโซ่ของโหนดซึ่งแต่ละโหนดมีค่าและ aตัวชี้ไปยังโหนดถัดไปในห่วงโซ่นอกจากนี้ tเขาเชื่อมโยงครั้งสุดท้ายในรายการที่เชื่อมโยงชี้ไปที่โมฆะซึ่งระบุจุดสิ้นสุดของห่วงโซ่องค์ประกอบในรายการที่เชื่อมโยงเรียกว่าไฟล์ โหนด .โหนดแรกในรายการเรียกว่า ศีรษะ .โหนดสุดท้ายเรียกว่า หาง .



ขอยกตัวอย่างง่ายๆดังนี้ลองนึกภาพคลิปหนีบกระดาษที่โยงเข้าด้วยกัน คุณสามารถเพิ่มคลิปหนีบกระดาษอีกอันที่ด้านบนหรือด้านล่างได้อย่างง่ายดาย นอกจากนี้ยังง่ายต่อการแทรกอันตรงกลาง สิ่งที่คุณต้องทำมีเพียงแค่ทำลายโซ่ตรงกลางใส่คลิปหนีบกระดาษใหม่จากนั้นเชื่อมต่ออีกครึ่งหนึ่ง รายการที่เชื่อมโยงจะคล้ายกับสิ่งนี้

ตัวอย่าง:

package MyPackage import java.util.LinkedList import java.util.ListIterator public class linkedlist {public static void main (String args []) {/ * Linked List Declaration * / LinkedListl_list = new LinkedList () / * add (String Item) คือ ใช้สำหรับเพิ่ม * รายการไปยังรายการที่เชื่อมโยง * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( 'เนื้อหารายการที่เชื่อมโยง:' + l_list) / * เพิ่มรายการในตำแหน่งที่ระบุ * / l_list.add (2, 'JavaScript') l_list.add (3, 'Kotlin') System.out.println ('l_list เนื้อหาหลังจากแก้ไข: '+ l_list) / * เพิ่มรายการแรกและรายการสุดท้าย * / l_list.addFirst (' หลักสูตรแรก ') l_list.addLast (' หลักสูตรสุดท้าย ') System.out.println (' l_list เนื้อหาหลังการเพิ่ม: '+ l_list) / * รับ และตั้งค่ารายการในรายการ * / Object firstvar = l_list.get (0) System.out.println ('First Item:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Content หลังจากอัปเดตรายการแรก: '+ l_list) / * ลบออกจากตำแหน่ง * / l_list.remove (1) l_list.remove (2) System.out.println ('LinkedList หลังจากลบรายการในตำแหน่งที่ 2 และ 3' + l_list) / * ลบรายการแรกและรายการสุดท้าย * / l_list.removeFirst () l_list.removeLast () System.out.println ('เนื้อหาสุดท้ายหลังจากลบรายการแรกและรายการสุดท้าย : '+ l_list) / * การทำซ้ำรายการที่เชื่อมโยง * / ListIteratoritrator = l_list.listIterator () System.out.println (' แสดงรายการโดยใช้ iterator: ') ในขณะที่ (itrator.hasNext ()) {System.out.println (itrator .ต่อไป()) } } }

เอาท์พุต:



เนื้อหารายการที่เชื่อมโยง = {Java, Python, Scala, Swift} เนื้อหาหลังการแก้ไข = {Java, Python, JavaScript, Kotlin, Scala, Swift} เนื้อหาหลังการเพิ่ม = {First Course, Java, Python, JavaScript, Kotlin, Scala, Swift, หลักสูตรสุดท้าย} รายการแรก = {หลักสูตรแรก} เนื้อหาหลังจากอัปเดตรายการแรก = เนื้อหา {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Last Course} หลังจากการลบรายการในตำแหน่งที่ 2 และ 3 = {Java9, Python, Kotlin, Scala, Swift, Last Course} เนื้อหาสุดท้ายหลังจากลบรายการแรกและรายการสุดท้าย = {Python, Kotlin, Scala, Swift} รายการที่แสดงโดยใช้ iterator = Python Kotlin Scala Swift

ตอนนี้เรามาดูหัวข้อถัดไปกัน

ArrayList คืออะไร?

เป็นการใช้งาน List Interface ที่สามารถเพิ่มหรือลบองค์ประกอบแบบไดนามิกออกจากรายการที่เกี่ยวข้องได้ ที่นี่ขนาดของรายการจะเพิ่มขึ้นแบบไดนามิกหากมีการเพิ่มองค์ประกอบมากกว่าขนาดเริ่มต้นหรือขนาดจริง แม้ว่าอาจจะช้ากว่าอาร์เรย์มาตรฐาน แต่ก็มีประโยชน์ในโปรแกรมที่ต้องมีการปรับแต่งจำนวนมากในอาร์เรย์

Cloudera ผู้พัฒนาที่ได้รับการรับรองสำหรับ apache hadoop

LinkedList-vs-ArrayList-in-Java-Edureka

ArrayList ถูกใช้เพื่อวัตถุประสงค์เหล่านี้:

  • ArrayList ใน Java ใช้เพื่อ เก็บ คอลเลกชันขนาดไดนามิกขององค์ประกอบ
  • เริ่มต้นด้วยขนาด อย่างไรก็ตามขนาดสามารถเพิ่มขึ้นได้หากคอลเลกชันใหญ่ขึ้นและลดขนาดลงหากวัตถุถูกลบออกจากไฟล์ .
  • นอกจากนี้ ArrayList ยังให้คุณเข้าถึงรายการแบบสุ่ม

ให้เราก้าวไปข้างหน้าและชี้ให้เห็นความคล้ายคลึงกันระหว่าง LinkedList และ ArrayList ใน Java

ความคล้ายคลึงกันระหว่าง LinkedList และ ArrayList

สิ่งเหล่านี้คือความคล้ายคลึงกันระหว่าง LinkedList และ ArrayList ใน Java

  • ArrayList และ LinkedList เป็นการนำไฟล์ อินเทอร์เฟซรายการ .
  • ทั้ง ArrayList และ LinkedList รักษาลำดับการแทรกขององค์ประกอบ ซึ่งหมายความว่าในขณะที่แสดงองค์ประกอบรายการชุดผลลัพธ์จะมีลำดับเดียวกันกับที่แทรกองค์ประกอบลงในรายการ
  • คลาส TheseArrayList และ LinkedList ไม่ซิงโครไนซ์และสามารถทำซิงโครไนซ์อย่างชัดเจนโดยใช้ CollectionsSynchronizedList วิธี.
  • ตัววนซ้ำและ ListIterator ที่ส่งคืนโดยคลาสเหล่านี้ล้มเหลวอย่างรวดเร็ว ซึ่งหมายความว่าหากรายการมีการปรับเปลี่ยนโครงสร้างในช่วงเวลาใดก็ตามหลังจากสร้างตัววนซ้ำแล้วยกเว้นไฟล์วิธีการลบหรือเพิ่มของ iterator เองตัววนซ้ำจะโยนไฟล์ ConcurrentModificationException .

ความแตกต่างระหว่าง LinkedList และ ArrayList

ก่อนอื่นเรามาดูพารามิเตอร์เพื่อเปรียบเทียบ LinkedList กับ ArrayList ใน Java

พารามิเตอร์เพื่อเปรียบเทียบ LinkedList และ ArrayList ใน Java:

  • การดำเนินการ
  • การนำไปใช้
  • กระบวนการ
  • หน่วยความจำ
  1. การดำเนินงาน

การแทรกการเพิ่มและการลบรายการนั้นเร็วกว่าในไฟล์ LinkedList เพราะเราไม่จำเป็นต้องปรับขนาดเหมือนที่ทำ ArrayList

2. การนำไปใช้

ฟังก์ชันใน sql คืออะไร

ArrayList ขึ้นอยู่กับไฟล์ แนวคิดของอาร์เรย์ที่ปรับขนาดได้แบบไดนามิกในขณะที่ LinkedList ขึ้นอยู่กับการใช้รายการที่เชื่อมโยงแบบทวีคูณ

3. กระบวนการ

ถึง LinkedList คลาสสามารถใช้เป็นรายการและคิวได้เนื่องจากใช้อินเตอร์เฟส List และ Deque ในขณะที่ ArrayList สามารถใช้ Lists เท่านั้น

สี่. หน่วยความจำ

ถึง LinkedList ใช้หน่วยความจำมากกว่าไฟล์ ArrayList เพราะทุกโหนดในไฟล์ LinkedList เก็บข้อมูลอ้างอิงสองรายการในขณะที่ ArrayList เก็บข้อมูลและดัชนีเท่านั้น

LinkedList กับ ArrayList ใน Java

พารามิเตอร์LinkedListArrayList
การดำเนินงาน

การแทรกการเพิ่มและการลบค่อนข้างเร็วกว่า

เปรียบเทียบการดำเนินงานที่นี่ช้า

วิธีการแปลง java จาก double เป็น int
การนำไปใช้

ติดตามการนำรายการที่เชื่อมโยงเป็นทวีคูณ

เป็นไปตามแนวคิดของอาร์เรย์ที่ปรับขนาดได้แบบไดนามิก

กระบวนการ

คลาส LinkedList สามารถเป็นรายการและคิวได้เนื่องจากใช้อินเตอร์เฟส List และ Deque

คลาส ArrayList สามารถเป็นรายการได้เนื่องจากใช้เฉพาะ Lists

หน่วยความจำ

การใช้หน่วยความจำใน LinkedList สูง

น้อยกว่าเมื่อเทียบกับ LinkedList

นั่นคือทุกคน! สิ่งนี้นำเราไปสู่ตอนท้ายของบทความนี้เกี่ยวกับ LinkedList vs ArrayList ใน Java ฉันหวังว่าพวกคุณจะชัดเจนกับสิ่งที่สอนในบทความนี้

หากคุณพบบทความนี้เกี่ยวกับ“ LinkedList vs ArrayList ใน Java” ให้ดูที่ไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก เราพร้อมช่วยเหลือคุณในทุกขั้นตอนในการเดินทางของคุณและเรามาพร้อมกับหลักสูตรที่ออกแบบมาสำหรับนักเรียนและมืออาชีพที่ต้องการเป็น Java Developer