ใน Java มีคลาสหลากหลายที่ใช้จัดเก็บประเภทข้อมูลเฉพาะ แต่ละคลาสมีคุณสมบัติของตัวเอง และคลาสที่ใช้จัดเก็บประเภทข้อมูลจะกำหนดว่าจะเข้าถึงและจัดการมันได้อย่างไร
หนึ่งในคลาสสำคัญที่สุดใน Java คือคลาส Vector Vector เป็นการ implement ของ List interface และใช้สำหรับสร้าง resizable arrays
บทช่วยสอนนี้จะเดินทางผ่าน พร้อมอ้างอิงตัวอย่าง วิธีใช้คลาส Vector ใน Java เพื่อสร้าง resizable arrays นอกจากนี้ บทช่วยสอนนี้จะอภิปรายว่า Vector เปรียบเทียบกับคลาส ArrayList ซึ่งคล้ายกับ Vector มาก
Java List Interface
List interface ใช้สำหรับสร้าง ordered sets ของข้อมูลใน Java ตัวอย่างเช่น List อาจจัดเก็บรายการรองเท้าที่ขายในร้านรองเท้า หรือรายการชื่อพนักงานทุกคนที่ทำงานให้ธนาคาร
อย่างไรก็ตาม เนื่องจาก List เป็น interface คุณไม่สามารถสร้าง object จาก List ได้ ดังนั้น หากคุณต้องการสร้าง list คุณต้องใช้หนึ่งในคลาสที่ extend List interface พวกมันคือ: ArrayList, LinkedList, Vector, และ Stack บทช่วยสอนนี้จะโฟกัสที่วิธีที่คุณสามารถใช้คลาส Vector เพื่อสร้าง List object ใน Java
Java Vector
Vector ใช้ List interface เพื่อสร้าง resizable arrays เพื่อสร้าง vector ใน Java คุณสามารถใช้ syntax ต่อไปนี้:
Vector<DataType> vector_name = new Vector<>();
มาแยก syntax นี้ออกเป็นส่วนพื้นฐาน:
81% ของผู้เข้าร่วมระบุว่ารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสงานทางเทคโนโลยีหลังจากเข้าร่วมบูทแคมป์ ได้รับการจับคู่กับบูทแคมป์วันนี้
นักศึกษาจบบูทแคมป์เฉลี่ยใช้เวลาน้อยกว่า 6 เดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มบูทแคมป์จนหางานแรก
- Vector บอกโปรแกรมของเราว่าเราต้องการ declare vector
- DataType คือประเภทข้อมูลที่ vector ของเราจะจัดเก็บ
- vector_name คือชื่อของ vector ของเรา
- new Vector<>(); สร้าง vector ใหม่และกำหนดให้ตัวแปร
vector_name
ตัวอย่างเช่น สมมติว่าเราต้องการ declare vector ที่จัดเก็บสีทั้งหมดของโคมไฟที่ร้านเดพาร์ทเมนต์ของเราขาย เราสามารถใช้โค้ดนี้ declare vector:
Vector<String> lamp_colors = new Vector>?();
ตอนนี้เรามี vector ที่ชื่อว่า lamp_colors ซึ่งสามารถจัดเก็บสีทั้งหมดของโคมไฟที่ร้านเดพาร์ทเมนต์ของเราขายได้
Java Vector Methods
Java Vector class 提供หลายเมธอดที่ใช้ retrieve และ manipulate ข้อมูลที่จัดเก็บใน vector มาแยกเมธอดสำคัญที่สุดที่ Vector class เสนอ
เพิ่ม Items เข้า Vector
มีสามเมธอดที่ใช้เพิ่ม items เข้า vectors เมธอดที่คุณใช้จะขึ้นอยู่กับว่าคุณต้องการเพิ่ม item เข้า vector อย่างไร
เพิ่ม Element เข้า Vector
เมธอด add() ใช้เพิ่ม element เข้า vector Syntax สำหรับเมธอด add() คือ:
add(index, elementName);
เมธอด add() รับสองพารามิเตอร์:
- index คือค่า index ที่ item ที่คุณระบุควรถูกเพิ่มเข้า vector
- elementName คือ item ที่คุณต้องการเพิ่มเข้า vector
หากคุณต้องการเพิ่ม item ที่ท้ายของ vector พารามิเตอร์ index จะไม่จำเป็น
สมมติว่าเรากำลังดำเนินร้านเดพาร์ทเมนต์ และเรากำลังทำรายการสีของโคมไฟโต๊ะเฉพาะที่ขายสำหรับช่วงเฟอร์นิเจอร์ใหม่ของเรา ผู้ผลิตเพิ่งแจ้งให้เราทราบว่าโคมไฟสีส้มและสีน้ำเงินจะมาพร้อมกับออเดอร์ถัดไป ดังนั้นเราต้องการเพิ่มสีส้มและสีน้ำเงินเข้าไปในรายการสีของเรา
เราสามารถทำได้ด้วยโค้ดนี้:
import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> lamp_colors = new Vector<>(); lamp_colors.add("Orange"); lamp_colors.add("Blue"); System.out.println("Vector: " + lamp_colors); } } โค้ดของเราส่งคืน:
Vector: [Orange, Blue]
เห็นได้ชัดว่าโค้ดของเราได้เพิ่ม Orange และ Blue เข้า lamp_colors vector ของเรา
สมมติว่าผู้ผลิตเพิ่งติดต่อมาบอกว่าพวกเขาจะส่งโคมไฟสีเทาด้วย เราต้องการเพิ่มโคมไฟสีเทาที่จุดเริ่มต้นของรายการเพราะเราคาดว่าจะยอดนิยมกว่าสีอื่น เราสามารถทำได้โดยใช้ตัวอย่างจากด้านบนและเพิ่มโค้ดนี้:
import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> lamp_colors = new Vector<>(); lamp_colors.add("Orange"); lamp_colors.add("Blue"); lamp_colors.add(0, "Gray"); System.out.println("Vector: " + lamp_colors); } } โค้ดของเราส่งคืน:
Vector: [Gray, Orange, Blue]
ในตัวอย่างนี้ เราใช้เมธอด add() เพื่อเพิ่ม Gray เข้า vector lamp_colors เราระบุพารามิเตอร์ index 0 ในโค้ดของเรา ซึ่งบอก add() ให้เพิ่ม item Gray เข้า index position 0 กล่าวคือ เราเพิ่ม Gray เข้าจุดเริ่มต้นของ vector ของเรา จากนั้นเราบอกโปรแกรมให้พิมพ์ vector ทั้งหมดออกมา
รวม Vectors
เมธอด addAll() ใช้เพิ่มทุก elements จาก vector หนึ่งเข้า vector อีกตัว
สมมติว่าเรามีสองรายการ: color range และ lamp colors เราต้องการรวมสองรายการนี้เข้าด้วยกัน เพราะผู้ผลิตโคมไฟบอกเราว่าพวกเขาจะผลิตโคมไฟในทุกสีใน color range ของเราได้ เราสามารถใช้โค้ดต่อไปนี้รวมสอง vector lists นี้เข้าด้วยกัน:
import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> color_range = new Vector<>(); Vector<String> lamp_colors = new Vector<>(); color_range.add("Blue"); color_range.add("Black"); color_range.add("Gray"); color_range.add("Pink"); color_range.add("Orange"); lamp_colors.addAll(color_range); System.out.println("Color range: " + color_range); System.out.println("Lamp colors: " + lamp_colors); } } โค้ดของเราส่งคืน:
Color range: [Blue, Black, Gray, Pink, Orange] Lamp colors: [Blue, Black, Gray, Pink, Orange]
โค้ดของเราเพิ่มสีใน color range ของเราเข้า vector color_range ก่อน จากนั้นเราใช้ addAll() เพิ่มทุกสีจาก color_range เข้า vector lamp_colors บรรทัดสุดท้ายในโค้ดของเรา เราพิมพ์ทั้งเนื้อหาของ color_range และ lamp_colors ไปที่ console
ดึง Elements จาก Vector
เมธอด get() ใช้ retrieve element เฉพาะจาก vector get() รับพารามิเตอร์หนึ่ง: ค่า index ของ item ที่คุณต้องการ retrieve
สมมติว่ารายการสีโคมไฟของเราจัดเก็บในลำดับอักษร และเราต้องการ retrieve item แรกในรายการของเรา เราสามารถทำได้ด้วยโค้ดนี้:
import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> lamp_colors = new Vector<>(); lamp_colors.add("Black"); lamp_colors.add("Blue"); lamp_colors.add("Gray"); lamp_colors.add("Orange"); lamp_colors.add("Pink"); String first_element = lamp_colors.get(0); System.out.println("First element in list: " + first_element); } } โค้ดของเราส่งคืน:
First element in list: Black
ในโค้ดของเรา เราใช้เมธอด get() เพื่อ retrieve item แรกใน vector lamp_colors เราระบุพารามิเตอร์ index 0 ซึ่งบอกโค้ดของเราให้ retrieve item แรกใน vector หรือกล่าวอีกนัยหนึ่ง item ที่ index position 0 จากนั้น เราพิมพ์ first element ใน list ไปที่ console พร้อมข้อความ First element in list:
ลบ Elements จาก Vector
มีสามเมธอดที่สามารถใช้ลบ elements จาก vector: remove(), removeAll(), และ clear().
ลบ Single Element
เมธอด remove() ใช้ลบ element เดียวจาก vector remove() accepts พารามิเตอร์หนึ่ง: index position ของ element ที่คุณต้องการลบจาก vector
มากลับไปที่ร้านเดพาร์ทเมนต์ ผู้ผลิตแจ้งให้เราทราบว่าพวกเขาไม่สามารถผลิตโคมไฟสีส้มของเราได้อีกต่อไป และดังนั้นเราต้องลบมันออกจากรายการสีที่โคมไฟของเราขาย เราสามารถทำได้ด้วยโค้ดนี้:
import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> lamp_colors = new Vector<>(); lamp_colors.add("Black"); lamp_colors.add("Blue"); lamp_colors.add("Gray"); lamp_colors.add("Orange"); lamp_colors.add("Pink"); lamp_colors.remove(3); System.out.println("New color list: " + lamp_colors); } } โค้ดของเราส่งคืน:
New color list: [Black, Blue, Gray, Pink]
เราใช้เมธอด remove() ลบ item ที่ index position 3 ในรายการของเรา ในกรณีนี้ ค่าของ item นั้นคือ Orange จากนั้นเราพิมพ์ revised color list ไปที่ console พร้อมข้อความ New color list:
ลบ All Elements
เมธอด removeAll() และ clear() ใช้ลบทุก elements จาก list โดยทั่วไปการใช้ clear() ได้รับการชื่นชอบเพราะมีประสิทธิภาพมากกว่า แต่คุณก็สามารถใช้เมธอด removeAll() ได้เช่นกัน
สมมติว่าผู้ผลิตตัดสินใจว่าพวกเขาจะไม่สามารถผลิตโคมไฟของเราได้อีกต่อไป เพราะพวกเขากำลังลดขนาดการดำเนินงาน ดังนั้น เราจะไม่ขายโคมไฟจนกว่าจะหาผู้ผลิตใหม่ เราสามารถใช้รายการต่อไปนี้ลบสีทั้งหมดของโคมไฟที่เราขาย:
import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> lamp_colors = new Vector<>(); lamp_colors.add("Black"); lamp_colors.add("Blue"); lamp_colors.add("Gray"); lamp_colors.add("Orange"); lamp_colors.add("Pink"); lamp_colors.clear(); System.out.println("New color list: " + lamp_colors); } } โค้ดของเราส่งคืน:
New color list: []
เราใช้เมธอด clear() ลบทุก elements ใน vector lamp_colors จากนั้น บรรทัดสุดท้ายของโค้ดของเรา เราพิมพ์คำว่า New color list: “ ตามด้วย vector ว่างเปล่า
Java Vector และ ArrayList
ArrayList และ Vector ทั้งคู่ implement Java list interface คลาสเหล่านี้ยัง提供เมธอดเดียวกัน อย่างไรก็ตาม มีความแตกต่างเล็กน้อยระหว่างสองคลาส
ความแตกต่างหลักที่ต้องบันทึกคือคลาส Vector เป็น synchronized ซึ่งหมายความว่ามีเพียงหนึ่ง thread ในเวลาเดียวกันที่สามารถเข้าถึงโค้ดได้ ArrayList ด้านอื่น เป็น unsynchronized และดังนั้น multiple threads สามารถทำงานบน list เดียวกันในเวลาเดียวกันได้
Vector Methods เพิ่มเติม
นอกจากนี้ ยังมีเมธอดอีกเล็กน้อยที่สามารถใช้ manipulate ข้อมูลที่จัดเก็บภายใน vector นี่คือตารางอ้างอิงพร้อมเมธอดเหล่านี้:
| Method Name | Description |
| contains() | ค้นหาค่าเฉพาะใน vector |
| iterator() | Iterate ผ่าน vector |
| set() | เปลี่ยน element ใน vector |
| size() | คืนความยาวของ vector |
| toArray() | แปลง vector เป็น array |
| toString() | แปลง vector เป็น string |
สรุป
Vector class ใช้ใน Java เพื่อจัดเก็บข้อมูลโดยใช้ List interface ตัวอย่างเช่น Vector อาจใช้จัดเก็บรายการสินค้าที่ขายในร้านเดพาร์ทเมนต์ หรือรายการสปพลีเมนต์ที่มีที่ร้านขายยาท้องถิ่น
บทช่วยสอนนี้อภิปรายพื้นฐานของ Java Vector class วิธีสร้าง vector และความแตกต่างหลักระหว่าง Vector และ ArrayList นอกจากนี้ บทช่วยสอนนี้เดินทางผ่านเมธอดหลักที่สามารถใช้ retrieve และ manipulate เนื้อหาของ vector พร้อมอ้างอิงตัวอย่าง
ตอนนี้คุณมีทักษะที่จำเป็นเพื่อเริ่มใช้ Vector class ใน Java อย่างมืออาชีพแล้ว!