java.util.Collections的synchronizedSet(Set s)可以返回一个同步的(线程安全的)set,它被输入参数的set支撑。
为了保证有序访问,对支撑set的访问必须通过该函数返回的set进行。
示例:
package com.thb;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
public class Demo {
public static void main(String[] args) {
// 创建一线程安全的set
Set<Byte> codes = Collections.synchronizedSet(new HashSet<>());
// 在codes中添加值
for (int i = 1; i < 5; i++) {
codes.add((byte)i);
}
System.out.println("codes.size: " + codes.size());
System.out.println("codes contains (byte)3: " + codes.contains((byte)3));
}
}
运行输出:
codes.size: 4
codes contains (byte)3: true