ความแตกต่างระหว่าง Array และ ArrayList ความแตกต่างระหว่าง
อาร์เรย์และ ArrayList คืออะไร?
ทั้งอาร์เรย์และ ArrayList เป็นโครงสร้างข้อมูลที่ใช้ดัชนีซึ่งมักใช้ในโปรแกรม Java การพูดเชิงอาญา ArrayList ได้รับการสนับสนุนภายในโดยอาร์เรย์ แต่การทำความเข้าใจความแตกต่างระหว่างสองคือกุญแจสำคัญในการเป็นนักพัฒนา Java ที่ยอดเยี่ยม เป็นขั้นตอนพื้นฐานที่จะเริ่มต้นโดยเฉพาะผู้เริ่มต้นที่เพิ่งเริ่มเขียนโค้ด แม้ว่าทั้งสองจะใช้เพื่อจัดเก็บองค์ประกอบใน Java ซึ่งอาจเป็นทั้งแบบดั้งเดิมหรือวัตถุ แต่ก็มีส่วนแบ่งที่ยุติธรรมในแง่ของความสามารถและประสิทธิภาพ ความแตกต่างที่สำคัญระหว่างสองคืออาร์เรย์เป็นแบบคงที่ขณะที่ ArrayList มีลักษณะแบบไดนามิก บทความนี้เปรียบเทียบทั้งสองด้านในหลายแง่มุมเพื่อให้คุณสามารถเลือกได้จากด้านอื่น ๆ
ความแตกต่างระหว่าง Array กับ ArraylistResizable
- ความแตกต่างระหว่างโครงสร้างข้อมูลทั้งสองแบบคืออาร์เรย์เป็นแบบสถิตซึ่งหมายความว่าเป็นชนิดข้อมูลความยาวคงที่ในขณะที่ ArrayList มีลักษณะแบบไดนามิกซึ่งหมายความว่าโครงสร้างข้อมูลมีความยาวแตกต่างกัน ในแง่เทคนิคความยาวของอาร์เรย์ไม่สามารถเปลี่ยนแปลงหรือแก้ไขได้เมื่อสร้างออบเจกต์อาร์เรย์แล้ว ประกอบด้วยชุดข้อมูลเรียงลำดับของประเภทข้อมูลเดียวกัน อาร์เรย์ในจาวาทำงานแตกต่างจากที่ใช้ใน C / C ++ ArrayList ตรงกันข้ามสามารถปรับขนาดตัวเองและอาร์เรย์สามารถเติบโตได้ตามที่ต้องการ เนื่องจากโครงสร้างข้อมูลแบบไดนามิกสามารถเพิ่มและนำองค์ประกอบออกจากรายการได้
คุณไม่สามารถสร้างอาร์เรย์คลาส Generic ของอินเทอร์เฟซใน Java ดังนั้นอาร์เรย์และ Generics ไม่ได้จับมือกันทำให้ไม่สามารถสร้าง Generic Array ได้ด้วยเหตุผลพื้นฐานที่อาร์เรย์มีตัวแปรร่วม ในขณะที่ generics เป็น invariant ในขณะที่อาร์เรย์เป็นโครงสร้างข้อมูลที่มีความยาวคงที่ แต่จะมีอ็อบเจ็กต์ของคลาสเดียวกันหรือ primitives ของชนิดข้อมูลที่ระบุ ดังนั้นถ้าคุณพยายามจัดเก็บข้อมูลประเภทอื่นนอกเหนือจากที่ระบุไว้ในขณะสร้างออบเจกต์ Array ก็จะพ่น "ArrayStoreException" ArrayList ตรงกันข้ามไม่สนับสนุน Generics เพื่อให้มั่นใจถึงความปลอดภัยของชนิด
- ชนิดข้อมูลดั้งเดิมเช่น int, double, long และ char ไม่ได้รับอนุญาตให้ใช้ใน ArrayList ค่อนข้างถือวัตถุและ primitives ไม่ถือเป็นวัตถุใน Java อาร์เรย์ในมืออื่น ๆ สามารถถือ primitives เช่นเดียวกับวัตถุใน Java เพราะเป็นหนึ่งในโครงสร้างข้อมูลที่มีประสิทธิภาพที่สุดใน Java สำหรับการจัดเก็บวัตถุ เป็นประเภทข้อมูลรวมที่ออกแบบมาเพื่อเก็บวัตถุซึ่งสามารถเป็นประเภทเดียวกันหรือชนิดอื่นได้
ความยาว
เพื่อให้ได้ความยาวของอาร์เรย์รหัสต้องเข้าถึงแอตทริบิวต์ length เพราะต้องทราบความยาวเพื่อดำเนินการบน Arrayในขณะที่ ArrayList ใช้เมธอด size () เพื่อกำหนดขนาดของ ArrayList จะค่อนข้างแตกต่างจากการพิจารณาความยาวของอาร์เรย์ แอตทริบิวต์ method size () กำหนดจำนวนองค์ประกอบใน ArrayList ซึ่งจะเป็นความสามารถของ ArrayList- สำหรับตัวอย่าง
:
- public class ArrayLengthTest {
public static void main (String [] args) {
ArrayList arrList = new ArrayList (); String [] รายการ = {"หนึ่ง", "สอง", "สาม"};
for (Strings str: items) {
arrList เพิ่ม (STR);
}
ขนาด int = รายการ ขนาด();
ระบบ ออก. println (ขนาด);
การติดตั้ง
อาร์เรย์เป็นคอมโพเนนต์การเขียนโปรแกรมแบบดั้งเดิมใน Java ที่สร้างขึ้นแบบไดนามิกและใช้โอเปอเรเตอร์การกำหนดค่าเพื่อเก็บอ็อบเจ็กต์ขณะที่ ArrayList ใช้แอ็ตทริบิวต์ add () ArrayList เป็นคลาสจากกรอบการรวบรวมใน Java ซึ่งใช้ชุดของวิธีการที่ระบุเพื่อเข้าถึงและแก้ไของค์ประกอบ ขนาดของ ArrayList สามารถเพิ่มหรือลดลงแบบไดนามิก องค์ประกอบในอาร์เรย์จะถูกเก็บไว้ในตำแหน่งของหน่วยความจำที่อยู่ติดกันและขนาดของไฟล์จะคงที่ตลอด
ประสิทธิภาพ
แม้ว่าทั้งสองโครงสร้างข้อมูลจะให้ประสิทธิภาพการทำงานที่คล้ายกันเนื่องจาก ArrayList ได้รับการสนับสนุนโดย Arrays แต่ก็มีข้อดีอีกประการหนึ่งคือส่วนใหญ่ใช้เวลาในการประมวลผล CPU และการใช้หน่วยความจำ สมมติว่าถ้าคุณทราบขนาดของอาร์เรย์คุณน่าจะไปกับ ArrayList อย่างไรก็ตาม iterating เหนือ Array เป็นบิตเร็วกว่า iterating เหนือ ArrayList ถ้าโปรแกรมเกี่ยวข้องกับจำนวนมาก primitives อาร์เรย์จะดำเนินการอย่างมีนัยสำคัญดีกว่า ArrayList ทั้งในแง่ของทั้งเวลาและหน่วยความจำ อาร์เรย์เป็นภาษาการเขียนโปรแกรมระดับต่ำที่สามารถใช้ในการใช้งานคอลเล็กชัน อย่างไรก็ตามประสิทธิภาพอาจแตกต่างกันไปขึ้นอยู่กับการดำเนินการที่คุณกำลังดำเนินการอยู่
- อาร์เรย์ Vs. Arraylist
อาร์เรย์
- ArrayList
อาร์เรย์เป็นโครงสร้างข้อมูลที่มีความยาวคงที่ซึ่งไม่สามารถปรับเปลี่ยนความยาวได้เมื่อสร้างอ็อบเจ็กต์อาร์เรย์แล้ว ArrayList