ความแตกต่างระหว่างอาร์เรย์และรายการอาร์เรย์

ความแตกต่างระหว่างอาร์เรย์และรายการอาร์เรย์
ความแตกต่างระหว่างอาร์เรย์และรายการอาร์เรย์

วีดีโอ: ความแตกต่างระหว่างอาร์เรย์และรายการอาร์เรย์

วีดีโอ: ความแตกต่างระหว่างอาร์เรย์และรายการอาร์เรย์
วีดีโอ: Why the United states of Africa failed leading to OAU formation 2024, กรกฎาคม
Anonim

อาร์เรย์เทียบกับรายการอาร์เรย์

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

อาร์เรย์คืออะไร

แสดงในรูปที่ 1 เป็นโค้ดที่ปกติใช้ในการประกาศและกำหนดค่าให้กับอาร์เรย์ รูปที่ 2 แสดงให้เห็นว่าอาร์เรย์จะมีลักษณะอย่างไรในหน่วยความจำ

int ค่า[5];

values[0]=100;

values[1]=101;

values[2]=102;

values[3]=103;

values[4]=104;

ภาพที่ 1: รหัสสำหรับการประกาศและกำหนดค่าให้กับอาร์เรย์

100 101 102 103 104
ดัชนี: 0 1 2 3 4

รูปที่ 2: Array ที่เก็บไว้ในหน่วยความจำ

เหนือโค้ด กำหนดอาร์เรย์ที่สามารถเก็บจำนวนเต็มได้ 5 จำนวน และเข้าถึงได้โดยใช้ดัชนี 0 ถึง 4 คุณสมบัติที่สำคัญอย่างหนึ่งของอาร์เรย์คืออาร์เรย์ทั้งหมดได้รับการจัดสรรเป็นบล็อกหน่วยความจำเดียว และแต่ละองค์ประกอบจะได้รับ พื้นที่ของตัวเองในอาร์เรย์เมื่อกำหนดอาร์เรย์แล้ว ขนาดของอาร์เรย์จะคงที่ ดังนั้น หากคุณไม่แน่ใจเกี่ยวกับขนาดของอาร์เรย์ในขณะคอมไพล์ คุณจะต้องกำหนดอาร์เรย์ที่ใหญ่พอที่จะอยู่ในด้านที่ปลอดภัย แต่โดยส่วนใหญ่แล้ว เราจะใช้องค์ประกอบน้อยกว่าที่เราจัดสรรไว้ ดังนั้นหน่วยความจำจำนวนมากจึงสูญเปล่าจริง ๆ ในทางกลับกัน ถ้า “อาร์เรย์ที่ใหญ่เพียงพอ” ไม่ใหญ่พอจริง ๆ โปรแกรมก็จะขัดข้อง

Arraylists คืออะไร

รายการอาร์เรย์สามารถมองเห็นเป็นอาร์เรย์ไดนามิกซึ่งสามารถขยายขนาดได้ ดังนั้น รายการอาร์เรย์จึงเหมาะอย่างยิ่งที่จะใช้ในสถานการณ์ที่คุณไม่ทราบขนาดขององค์ประกอบที่จำเป็นในขณะที่ประกาศ ใน Java รายการอาร์เรย์สามารถเก็บวัตถุได้เท่านั้น ไม่สามารถเก็บประเภทดั้งเดิมได้โดยตรง (คุณสามารถใส่ประเภทดั้งเดิมไว้ในวัตถุหรือใช้คลาส wrapper ของประเภทดั้งเดิมได้) โดยทั่วไป รายการอาร์เรย์จะมีวิธีการแทรก ลบ และค้นหา ความซับซ้อนของเวลาในการเข้าถึงองค์ประกอบคือ o(1) ในขณะที่การแทรกและการลบนั้นมีความซับซ้อนของเวลาเป็น o(n)ใน Java สามารถข้ามรายการอาร์เรย์โดยใช้ลูป foreach วนซ้ำ หรือเพียงแค่ใช้ดัชนี

ความแตกต่างระหว่าง Array และ Arraylists

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