import org.apache.commons.collections4.map.MultiValueMap;
import java.util.Map;
public class MyThreadSafeClass {
private Map<String, String> threadSafeMap;
public MyThreadSafeClass() {
threadSafeMap = MultiValueMap.multiValueMap(new ConcurrentHashMap<>());
}
public void addToMap(String key, String value) {
synchronized (threadSafeMap) {
threadSafeMap.put(key, value);
}
}
public String getValue(String key) {
return threadSafeMap.get(key);
}
}
public class Main {
public static void main(String[] args) {
MyThreadSafeClass myThreadSafeClass = new MyThreadSafeClass();
myThreadSafeClass.addToMap("key1", "value1");
myThreadSafeClass.addToMap("key2", "value2");
String value1 = myThreadSafeClass.getValue("key1");
String value2 = myThreadSafeClass.getValue("key2");
System.out.println(value1);
System.out.println(value2);
}
}
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>
</dependencies>