ในโพสต์นี้ เราจะเข้าใจความแตกต่างระหว่าง ArrayList และ Vector ใน Java
ArrayList
-
ไม่มีการซิงโครไนซ์
-
หากจำนวนขององค์ประกอบเกินความจุของ ArrayList มันจะเพิ่มขนาดอาร์เรย์ปัจจุบันขึ้น 50 เปอร์เซ็นต์
-
ไม่ปลอดภัยต่อเธรด
-
เปิดตัวใน JDK 1.2
-
มันใช้ได้เฉพาะตัววนซ้ำเพื่อสำรวจเท่านั้น
-
เนื่องจากไม่มีการซิงโครไนซ์จึงรวดเร็ว
-
ใช้อินเทอร์เฟซ Iterator เพื่อสำรวจผ่านองค์ประกอบต่างๆ
ตัวอย่าง
ArrayList<T> al = new ArrayList<T>();
เวกเตอร์
-
มีการซิงโครไนซ์
-
เป็นเธรดที่ปลอดภัย
-
มันเป็นคลาสดั้งเดิม
-
มันช้าเพราะมันซิงโครไนซ์
-
หากจำนวนขององค์ประกอบเกินความจุของเวกเตอร์ จะเพิ่มขนาดอาร์เรย์ปัจจุบันขึ้น 100 เปอร์เซ็นต์
-
สามารถใช้ตัวแจงนับและตัววนซ้ำเพื่อสำรวจได้
-
เป็นที่ต้องการมากกว่า ArrayList
-
มันมีสภาพแวดล้อมแบบมัลติเธรด
-
มันเก็บเธรดอื่น ๆ ในสถานะ runnable หรือ non-runnable จนกว่าเธรดปัจจุบันจะปลดล็อควัตถุเฉพาะ
-
สามารถใช้อินเทอร์เฟซ 'Iterator' หรืออินเทอร์เฟซการแจงนับเพื่อสำรวจผ่านองค์ประกอบต่างๆ ได้
ตัวอย่าง
Vector<T> v = new Vector<T>();