ความแตกต่างระหว่าง ArrayList และ Vector (พร้อมตาราง)

สารบัญ:

Anonim

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

ArrayList กับ Vector

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

ArrayList ช่วยให้ผู้ใช้แก้ไขขนาดของอาร์เรย์ได้ ArrayList ทำให้อาร์เรย์ย่อหรือขยายตามความต้องการของผู้ใช้ แตกต่างจากอาร์เรย์ในตัวเนื่องจากอาร์เรย์ในตัวไม่อนุญาตให้ผู้ใช้ปรับเปลี่ยนขนาดของอาร์เรย์ ArrayList สามารถทำงานบนหลายเธรดพร้อมกัน

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

ตารางเปรียบเทียบระหว่าง ArrayList และ Vector

พารามิเตอร์ของการเปรียบเทียบ

ArrayList

เวกเตอร์

การซิงโครไนซ์ ArrayList ไม่ได้ซิงโครไนซ์ กล่าวคือ สามารถทำงานบนเธรดต่างๆ พร้อมกันได้ เวกเตอร์ถูกซิงโครไนซ์ กล่าวคือ มีเธรดเดียวเท่านั้นที่สามารถจัดการโค้ดได้ในขณะนั้น
ความเร็ว การดำเนินการนั้นรวดเร็วเนื่องจากไม่มีการซิงโครไนซ์ การทำงานของเวกเตอร์ทำงานช้าลงเมื่อมีการซิงโครไนซ์
การปรับขนาด หากองค์ประกอบเกินความจุ ArrayList จะเพิ่ม 50% ของขนาดอาร์เรย์ที่มีอยู่ หากองค์ประกอบเกินความจุ เวกเตอร์จะเพิ่ม 100% ของขนาดอาร์เรย์ที่มีอยู่
ความพึงใจ โปรแกรมเมอร์ชอบ ArrayList มากกว่าเวกเตอร์ เป็นที่นิยมน้อยกว่าเนื่องจากการซิงโครไนซ์ในเวกเตอร์ทำให้เกิดประสิทธิภาพที่ต่ำกว่า
ข้ามผ่าน(pass-through) มันใช้ Iterator เพื่อสำรวจองค์ประกอบ มันสามารถใช้ Iterator และการแจงนับเพื่อสำรวจองค์ประกอบ

ArrayList คืออะไร?

ArrayList เป็นอาร์เรย์ที่ปรับเปลี่ยนได้ มันถูกพบในจาวา ยูทิลิตี้แพคเกจ มีฟังก์ชันที่แตกต่างจากอาร์เรย์ในตัว การสร้าง ArrayList มีประโยชน์เมื่อผู้ใช้ไม่ทราบขนาดของข้อมูลที่จะรวม ArrayList ถือว่าค่า null หรือ void นั้นถูกต้อง

ArrayList ให้ผู้ใช้ดำเนินการพื้นฐานในการเพิ่มองค์ประกอบ การลบองค์ประกอบ การเปลี่ยนแปลงองค์ประกอบ และการดำเนินการวนซ้ำ

ArrayList รองรับการทำงานหลายอย่าง

ArrayList ดำเนินการโดยขนาดของมัน แม้ว่าจะสามารถขยายได้โดยการเพิ่มองค์ประกอบและย่อขนาดโดยการเอาองค์ประกอบออก

สองวิธีต่อไปนี้ใช้เพื่อตรวจสอบว่าองค์ประกอบมีอยู่ใน Java ArrayList หรือไม่

เวกเตอร์คืออะไร?

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

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

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

Vector เช่นเดียวกับ ArrayList ให้ผู้ใช้ดำเนินการพื้นฐานในการเพิ่มองค์ประกอบ การลบองค์ประกอบ การเปลี่ยนแปลงองค์ประกอบ และการทำงานของลูป

Vector รองรับการดำเนินการด้าน simplex อื่น ๆ นอกเหนือจากการดำเนินการพื้นฐานที่ระบุไว้

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

บทสรุป

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

อ้างอิง

ความแตกต่างระหว่าง ArrayList และ Vector (พร้อมตาราง)