รายการ ใน Java เป็นอินเทอร์เฟซย่อยของ ที่ให้โซลูชันที่ดีที่สุดพร้อมแนวคิดต่างๆเช่นการเข้าถึงตำแหน่งการทำซ้ำและอื่น ๆ ในบทความนี้ฉันจะพูดถึงความแตกต่างที่สำคัญระหว่างอินเทอร์เฟซรายการ LinkedList กับ ArrayList ใน Java
ด้านล่างนี้เป็นหัวข้อที่กล่าวถึงในบทความนี้:
- LinkedList คืออะไร?
- ArrayList คืออะไร?
- ความคล้ายคลึงกันระหว่าง LinkedList และ ArrayList
- ความแตกต่างระหว่าง LinkedList และ ArrayList
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
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:
- การดำเนินการ
- การนำไปใช้
- กระบวนการ
- หน่วยความจำ
- การดำเนินงาน
การแทรกการเพิ่มและการลบรายการนั้นเร็วกว่าในไฟล์ LinkedList เพราะเราไม่จำเป็นต้องปรับขนาดเหมือนที่ทำ ArrayList
2. การนำไปใช้
ฟังก์ชันใน sql คืออะไร
ArrayList ขึ้นอยู่กับไฟล์ แนวคิดของอาร์เรย์ที่ปรับขนาดได้แบบไดนามิกในขณะที่ LinkedList ขึ้นอยู่กับการใช้รายการที่เชื่อมโยงแบบทวีคูณ
3. กระบวนการ
ถึง LinkedList คลาสสามารถใช้เป็นรายการและคิวได้เนื่องจากใช้อินเตอร์เฟส List และ Deque ในขณะที่ ArrayList สามารถใช้ Lists เท่านั้น
สี่. หน่วยความจำ
ถึง LinkedList ใช้หน่วยความจำมากกว่าไฟล์ ArrayList เพราะทุกโหนดในไฟล์ LinkedList เก็บข้อมูลอ้างอิงสองรายการในขณะที่ ArrayList เก็บข้อมูลและดัชนีเท่านั้น
LinkedList กับ ArrayList ใน Java
พารามิเตอร์ | LinkedList | ArrayList |
การดำเนินงาน | การแทรกการเพิ่มและการลบค่อนข้างเร็วกว่า | เปรียบเทียบการดำเนินงานที่นี่ช้า วิธีการแปลง java จาก double เป็น int |
การนำไปใช้ | ติดตามการนำรายการที่เชื่อมโยงเป็นทวีคูณ | เป็นไปตามแนวคิดของอาร์เรย์ที่ปรับขนาดได้แบบไดนามิก |
กระบวนการ | คลาส LinkedList สามารถเป็นรายการและคิวได้เนื่องจากใช้อินเตอร์เฟส List และ Deque | คลาส ArrayList สามารถเป็นรายการได้เนื่องจากใช้เฉพาะ Lists |
หน่วยความจำ | การใช้หน่วยความจำใน LinkedList สูง | น้อยกว่าเมื่อเทียบกับ LinkedList |
นั่นคือทุกคน! สิ่งนี้นำเราไปสู่ตอนท้ายของบทความนี้เกี่ยวกับ LinkedList vs ArrayList ใน Java ฉันหวังว่าพวกคุณจะชัดเจนกับสิ่งที่สอนในบทความนี้
หากคุณพบบทความนี้เกี่ยวกับ“ LinkedList vs ArrayList ใน Java” ให้ดูที่ไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก เราพร้อมช่วยเหลือคุณในทุกขั้นตอนในการเดินทางของคุณและเรามาพร้อมกับหลักสูตรที่ออกแบบมาสำหรับนักเรียนและมืออาชีพที่ต้องการเป็น Java Developer