Clazz.load(["java.util.AbstractSet", "$.Set"], "java.util.HashSet", ["java.util.HashMap"], function(){
var c$ = Clazz.decorateAsClass(function(){
this.backingMap = null;
Clazz.instantialize(this, arguments);}, java.util, "HashSet", java.util.AbstractSet, [java.util.Set, Cloneable, java.io.Serializable]);
Clazz.makeConstructor(c$, 
function(){
this.construct ( new java.util.HashMap());
});
Clazz.makeConstructor(c$, 
function(capacity){
this.construct ( new java.util.HashMap(capacity));
}, "~N");
Clazz.makeConstructor(c$, 
function(capacity, loadFactor){
this.construct ( new java.util.HashMap(capacity, loadFactor));
}, "~N,~N");
Clazz.makeConstructor(c$, 
function(collection){
this.construct ( new java.util.HashMap(collection.size() < 6 ? 11 : collection.size() * 2));
for (var e, $e = collection.iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) {
this.add(e);
}
}, "java.util.Collection");
Clazz.makeConstructor(c$, 
function(backingMap){
Clazz.superConstructor (this, java.util.HashSet, []);
this.backingMap = backingMap;
}, "java.util.HashMap");
Clazz.overrideMethod(c$, "add", 
function(object){
return this.backingMap.put(object, this) == null;
}, "~O");
Clazz.overrideMethod(c$, "clear", 
function(){
this.backingMap.clear();
});
Clazz.defineMethod(c$, "clone", 
function(){
try {
var clone = Clazz.superCall(this, java.util.HashSet, "clone", []);
clone.backingMap = this.backingMap.clone();
return clone;
} catch (e) {
if (Clazz.exceptionOf(e,"CloneNotSupportedException")){
return null;
} else {
throw e;
}
}
});
Clazz.overrideMethod(c$, "contains", 
function(object){
return this.backingMap.containsKey(object);
}, "~O");
Clazz.overrideMethod(c$, "isEmpty", 
function(){
return this.backingMap.isEmpty();
});
Clazz.defineMethod(c$, "iterator", 
function(){
return this.backingMap.keySet().iterator();
});
Clazz.overrideMethod(c$, "remove", 
function(object){
return this.backingMap.remove(object) != null;
}, "~O");
Clazz.overrideMethod(c$, "size", 
function(){
return this.backingMap.size();
});
Clazz.defineMethod(c$, "createBackingMap", 
function(capacity, loadFactor){
return  new java.util.HashMap(capacity, loadFactor);
}, "~N,~N");
});
;//5.0.1-v7 Fri Nov 21 04:39:22 CST 2025
