Java中哪些集合类是线程安全的?

线程安全类是确保类的内部状态以及从方法返回的值在从多个线程并发调用时是正确的类。 Java中线程安全的集合类有Stack、Vector、Properties、Hashtable等。

堆栈(stack)

Java中的Stack类实现了基于后进先出(LIFO)原理的堆栈数据结构。因此,Stack类可以支持许多操作,比如push、pop、peek、search、empty等。

例子

import java.util.*;
public class StackTest {
   public static void main (String[] args) {
      Stack<Integer> stack = new Stack<Integer>();
      stack.push(5);
      stack.push(7);
      stack.push(9);
      Integer num1 = (Integer)stack.pop();
      System.out.println("弹出的元素是: " + num1);
      Integer num2 = (Integer)stack.peek();
      System.out.println("堆栈顶部的元素是: " + num2);
   }
}

输出结果

弹出的元素是: 9
堆栈顶部的元素是: 7

向量(vector)

Java中的Vector 类实现了根据需要增长 的对象数组。Vector类可以支持 add(),remove(),get(),elementAt(),size()等方法。

例子

import java.util.*;
public class VectorTest {
   public static void main(String[] arg) {
      Vector vector = new Vector();
      vector.add(9);
      vector.add(3);
      vector.add("ABC");
      vector.add(1);
      vector.add("DEF");
      System.out.println("向量是: " + vector);
      vector.remove(1);
      System.out.println("移除元素后的向量为: " + vector);
   }
}

输出结果

向量是: [9, 3, ABC, 1, DEF]
移除元素后的向量为: [9, ABC, 1, DEF]