![JAR search and dependency download from the Maven repository](/logo.png)
net.apexes.commons.lang.ConcurrentHashSet Maven / Gradle / Ivy
The newest version!
package net.apexes.commons.lang;
import java.util.AbstractSet;
import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author hedyn
*/
public class ConcurrentHashSet extends AbstractSet implements Set, java.io.Serializable {
private static final Object PRESENT = new Object();
private final ConcurrentHashMap map;
public ConcurrentHashSet(){
map = new ConcurrentHashMap<>();
}
public ConcurrentHashSet(int initialCapacity){
map = new ConcurrentHashMap<>(initialCapacity);
}
@Override
public Iterator iterator() {
return map.keySet().iterator();
}
@Override
public int size() {
return map.size();
}
@Override
public boolean isEmpty() {
return map.isEmpty();
}
@Override
public boolean contains(Object o) {
return map.containsKey(o);
}
@Override
public boolean add(E e) {
return map.put(e, PRESENT) == null;
}
@Override
public boolean remove(Object o) {
return map.remove(o) == PRESENT;
}
@Override
public void clear() {
map.clear();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy