Thread-safe คลาสที่รับประกันสถานะภายในและค่าที่คืนจากเมธอดถูกต้องเมื่อเรียกพร้อมกันจากหลาย Thread คลาส Collection ที่ Thread-safe ใน Java: Stack, Vector, Properties, Hashtable
1. Stack
นำโครงสร้างข้อมูล Stack (LIFO) ไปใช้ รองรับ push, pop, peek, search, empty
import java.util.*;
public class StackTest {
public static void main(String[] args) {
Stack<Integer> stack = new Stack<>();
stack.push(5); stack.push(7); stack.push(9);
Integer n1 = stack.pop(); // 9
System.out.println("Popped: " + n1);
Integer n2 = stack.peek(); // 7
System.out.println("Top: " + n2);
}
}
Popped: 9
Top: 7
2. Vector
อาร์เรย์ขยายได้อัตโนมัติ รองรับ add(), remove(), get(), elementAt(), size()
import java.util.*;
public class VectorTest {
public static void main(String[] args) {
Vector<Object> vector = new Vector<>();
vector.add(9); vector.add(3); vector.add("ABC");
vector.add(1); vector.add("DEF");
System.out.println("Vector: " + vector);
vector.remove(1);
System.out.println("After remove: " + vector);
}
}
Vector: [9, 3, ABC, 1, DEF]
After remove: [9, ABC, 1, DEF]
หมายเหตุ: Vector และ Hashtable เป็น Legacy Classes ใหม่แนะนำใช้ Collections.synchronizedList/Map หรือ ConcurrentHashMap, CopyOnWriteArrayList จาก java.util.concurrent แทน