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 ถือว่าดีกว่าเพราะให้ประสิทธิภาพที่เหนือกว่าในกรอบเวลาที่สั้นลง เวกเตอร์มีข้อได้เปรียบเล็กน้อยเมื่อผู้ใช้ไม่ทราบความยาวของข้อมูลที่จะเพิ่มในอาร์เรย์ โปรแกรมเมอร์สามารถใช้วิธีการใดก็ได้ตามความต้องการ