java.util.vector ให้คลาสเวกเตอร์ (เวกเตอร์) เพื่อใช้ฟังก์ชั่นคล้ายอาร์เรย์แบบไดนามิก ไม่มีแนวคิดของพอยน์เตอร์ในภาษา Java แต่การใช้พอยน์เตอร์อย่างถูกต้องและยืดหยุ่นได้อย่างมากสามารถปรับปรุงคุณภาพของโปรแกรมได้อย่างมาก ตัวอย่างเช่นที่เรียกว่า "อาร์เรย์แบบไดนามิก" ใน C และ C ++ โดยทั่วไปจะถูกนำไปใช้โดยพอยน์เตอร์ เพื่อชดเชยข้อบกพร่องนี้ Java จัดเตรียมห้องสมุดคลาสที่หลากหลายเพื่อใช้งานง่ายโดยโปรแกรมเมอร์และคลาส Vector เป็นหนึ่งในนั้น ในความเป็นจริงความยืดหยุ่นของการใช้อาร์เรย์สามารถทำให้ฟังก์ชั่นของคลาสเวกเตอร์เสร็จสมบูรณ์ แต่วิธีการจำนวนมากที่มีให้ในคลาสเวกเตอร์ช่วยให้ผู้ใช้ใช้งานได้อย่างมาก
หลังจากสร้างวัตถุของคลาสเวกเตอร์คุณสามารถแทรกวัตถุของคลาสที่แตกต่างกันลงไปได้ตามต้องการนั่นคือคุณไม่จำเป็นต้องพิจารณาประเภทหรือความสามารถของเวกเตอร์ที่เลือกไว้ล่วงหน้าและสามารถค้นหาได้อย่างง่ายดาย สำหรับสถานการณ์ที่คุณไม่ทราบหรือไม่เต็มใจที่จะกำหนดขนาดอาร์เรย์ที่กำหนดไว้ล่วงหน้าและจำเป็นต้องค้นหาแทรกและลบงานบ่อยครั้ง คุณสามารถพิจารณาใช้คลาสเวกเตอร์
คลาสเวกเตอร์ใช้อาร์เรย์แบบไดนามิก มันคล้ายกับ ArrayList แต่ทั้งสองนั้นแตกต่างกัน:
คลาสเวกเตอร์รองรับ 4 วิธีการก่อสร้าง
1. ตัวสร้างแรกสร้างเวกเตอร์เริ่มต้นด้วยขนาดเริ่มต้น 10:
เวกเตอร์ ()
2. วิธีการก่อสร้างที่สองสร้างเวกเตอร์ที่มีขนาดที่ระบุ
เวกเตอร์ (ขนาด int)
3. วิธีการก่อสร้างที่สามสร้างเวกเตอร์ที่มีขนาดที่ระบุและการเพิ่มขึ้นจะถูกระบุโดย incl การเพิ่มขึ้นแสดงถึงจำนวนองค์ประกอบที่เวกเตอร์เพิ่มขึ้นในแต่ละครั้ง
เวกเตอร์ (ขนาด int, int inc)
4. ตัวสร้างที่สี่สร้างเวกเตอร์ที่มีองค์ประกอบชุด C:
เวกเตอร์ (คอลเลกชัน C)
ระบบจะจัดการเวกเตอร์โดยอัตโนมัติโดยใช้วิธีแรกหากใช้สองวิธีหลัง ระบบจะตั้งค่าความจุของวัตถุเวกเตอร์ (นั่นคือขนาดของข้อมูลที่วัตถุเวกเตอร์สามารถจัดเก็บได้) ตามพารามิเตอร์และเมื่อจำนวนข้อมูลที่เก็บไว้จริงเกินกว่าความจุ ระบบจะขยายความสามารถในการจัดเก็บข้อมูลของวัตถุเวกเตอร์
ความสามารถในการขยายพารามิเตอร์ให้ค่าการขยายสำหรับการขยายตัวแต่ละครั้ง เมื่อความจุเป็น 0 การขยายตัวจะไม่เพิ่มเป็นสองเท่า ฟังก์ชั่นนี้สามารถใช้เพื่อเพิ่มประสิทธิภาพการจัดเก็บ มีวิธีการต่าง ๆ ในคลาสเวกเตอร์เพื่ออำนวยความสะดวกในการใช้งานของผู้ใช้:
ฟังก์ชันแทรก:
(1) เป็นโมฆะที่ซิงโครไนซ์สุดท้ายสาธารณะ (Object OBJ)
แทรก OBJ ลงในหางของเวกเตอร์ OBJ สามารถเป็นวัตถุประเภทใดก็ได้ สำหรับวัตถุเวกเตอร์เดียวกันสามารถแทรกวัตถุประเภทต่าง ๆ ลงไปได้ แต่เม็ดมีดควรเป็นวัตถุมากกว่าค่าตัวเลขดังนั้นเมื่อแทรกค่าตัวเลขคุณควรให้ความสนใจกับการแปลงอาร์เรย์เป็นวัตถุที่เกี่ยวข้อง
ตัวอย่างเช่น: เมื่อแทรกจำนวนเต็ม 1 อย่าโทร v1.addelement (1) วิธีที่ถูกต้องคือ:
เวกเตอร์ v1 = เวกเตอร์ใหม่ (); จำนวนเต็มจำนวนเต็ม 1 = จำนวนเต็มใหม่ (1); v1.addelement (Integer1);
(2) โมฆะ setelementat ที่ซิงโครไนซ์สุดท้ายสาธารณะ (Object OBJ, INT INDEX)
ตั้งค่าวัตถุที่ดัชนีเป็น OBJ และวัตถุต้นฉบับจะถูกเขียนทับ
(3) INSERTELEMENT โมฆะสุดท้ายที่ซิงโครไนซ์สาธารณะ (OBJECT OBJ, INT INDEX)
แทรก OBJ ที่ตำแหน่งที่ระบุไว้ในดัชนีและวัตถุต้นฉบับและวัตถุที่ตามมาจะถูกเลื่อนออกไปในทางกลับกัน
ลบฟังก์ชั่น:
(1) โมฆะที่ซิงโครไนซ์สุดท้ายสาธารณะ (Object OBJ)
ลบ OBJ จากเวกเตอร์ หากมีอยู่หลายครั้งให้เริ่มต้นด้วยส่วนหัวเวกเตอร์และลบสมาชิกเวกเตอร์คนแรกที่พบด้วย OBJ
(2) โมฆะที่ซิงโครไนซ์สุดท้ายสาธารณะลบการขนาน ();
ลบวัตถุทั้งหมดในเวกเตอร์
(3) fianl public synchronized void remverelementat (INT ดัชนี)
ลบวัตถุที่ดัชนีอ้างถึง
ฟังก์ชั่นการค้นหาแบบสอบถาม:
(1) ดัชนี INT สุดท้ายของสาธารณะ (Object OBJ)
เริ่มค้นหา OBJ จากส่วนหัวเวกเตอร์และส่งคืนตัวห้อยที่สอดคล้องกับ OBJ แรกที่พบ หาก OBJ นี้ไม่มีอยู่ให้ส่งคืน -1
(2) ดัชนี INT ที่ซิงโครไนซ์สุดท้ายของสาธารณะ (Object OBJ, INT INDEX)
เริ่มค้นหา OBJ จากดัชนีที่ระบุโดยดัชนี
(3) Public Final Int LastIndexof (Object OBJ)
เริ่มต้นการค้นหาแบบผกผันสำหรับ OBJ จากหางของเวกเตอร์
(4) สาธารณะสุดท้าย synchornized int lastIndex (Object OBJ, INT INDEX)
ค้นหา OBJ ในสิ่งที่ตรงกันข้ามจากจุดสิ้นสุดไปยังหัวจากตัวห้อยที่ระบุโดยดัชนี
(5) FINAL FINAL SYNCHORNIZED FIRSELEMENT ()
รับ OBJ แรกในวัตถุเวกเตอร์
(6) วัตถุสุดท้ายที่ซิงเกิ้ลสาธารณะสุดท้าย ()
รับ obj สุดท้ายของวัตถุเวกเตอร์
ตัวอย่าง
โปรแกรมต่อไปนี้อธิบายหลายวิธีที่สนับสนุนโดยคอลเลกชันนี้:
นำเข้า java.util.*; คลาสสาธารณะ Vectordemo {โมฆะคงที่สาธารณะหลัก (สตริง args []) {// ขนาดเริ่มต้นคือ 3, การเพิ่มขึ้นคือ 2 เวกเตอร์ v = เวกเตอร์ใหม่ (3, 2); System.out.println ("ขนาดเริ่มต้น:" + v.size ()); System.out.println ("ความจุเริ่มต้น:" + v.capacity ()); V.Addelement (จำนวนเต็มใหม่ (1)); V.Addelement (จำนวนเต็มใหม่ (2)); V.Addelement (จำนวนเต็มใหม่ (3)); V.Addelement (จำนวนเต็มใหม่ (4)); System.out.println ("ความจุหลังจากสี่เพิ่มเติม:" + v.capacity ()); V.Addelement (ใหม่สองเท่า (5.45)); System.out.println ("ความจุปัจจุบัน:" + v.capacity ()); V.Addelement (ใหม่สองเท่า (6.08)); V.Addelement (จำนวนเต็มใหม่ (7)); System.out.println ("ความจุปัจจุบัน:" + v.capacity ()); V.Addelement (Float ใหม่ (9.4)); V.Addelement (จำนวนเต็มใหม่ (10)); System.out.println ("ความจุปัจจุบัน:" + v.capacity ()); V.Addelement (จำนวนเต็มใหม่ (11)); V.Addelement (จำนวนเต็มใหม่ (12)); System.out.println ("องค์ประกอบแรก:" + (จำนวนเต็ม) v.firstelement ()); System.out.println ("องค์ประกอบสุดท้าย:" + (จำนวนเต็ม) V.lastElement ()); if (v.contains (จำนวนเต็มใหม่ (3))) System.out.println ("เวกเตอร์มี 3. "); // ระบุองค์ประกอบในเวกเตอร์ การแจงนับ Venum = V.Elements (); System.out.println ("/nelements ในเวกเตอร์:"); ในขณะที่ (venum.hasmoreElements ()) System.out.print (venum.nextelement () + ""); System.out.println (); -การรวบรวมตัวอย่างข้างต้นและผลการดำเนินงานมีดังนี้:
ขนาดเริ่มต้น: 0initial ความจุ: 3Capacity หลังจากสี่เพิ่มเติม: 5 ความจุกระแส: 5 กระแสความจุ: 7 กระแสความจุ: 9first Element: 1last Element: 12 VECTOR มี 3.Elements ในเวกเตอร์: 1 2 3 4 5.45 6.08 7 9.4 10 11 12 12