MCPcopy Index your code
hub / github.com/clojure/clojure / PersistentHashSet

Class PersistentHashSet

src/jvm/clojure/lang/PersistentHashSet.java:17–132  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15import java.util.List;
16
17public class PersistentHashSet extends APersistentSet implements IObj, IEditableCollection {
18
19private static final long serialVersionUID = 6973890746204954938L;
20
21static public final PersistentHashSet EMPTY = new PersistentHashSet(null, PersistentHashMap.EMPTY);
22
23final IPersistentMap _meta;
24
25public static PersistentHashSet create(Object... init){
26 ITransientSet ret = (ITransientSet)EMPTY.asTransient();
27 for(int i = 0; i < init.length; i++)
28 {
29 ret = (ITransientSet)ret.conj(init[i]);
30 }
31 return (PersistentHashSet)ret.persistent();
32}
33
34public static PersistentHashSet create(List init){
35 ITransientSet ret = (ITransientSet)EMPTY.asTransient();
36 for(Object key : init)
37 {
38 ret = (ITransientSet) ret.conj(key);
39 }
40 return (PersistentHashSet)ret.persistent();
41}
42
43static public PersistentHashSet create(ISeq items){
44 ITransientSet ret = (ITransientSet)EMPTY.asTransient();
45 for(; items != null; items = items.next())
46 {
47 ret = (ITransientSet) ret.conj(items.first());
48 }
49 return (PersistentHashSet)ret.persistent();
50}
51
52public static PersistentHashSet createWithCheck(Object... init){
53 ITransientSet ret = (ITransientSet)EMPTY.asTransient();
54 for(int i = 0; i < init.length; i++)
55 {
56 ret = (ITransientSet) ret.conj(init[i]);
57 if(ret.count() != i + 1)
58 throw new IllegalArgumentException("Duplicate key: " + init[i]);
59 }
60 return (PersistentHashSet) ret.persistent();
61}
62
63public static PersistentHashSet createWithCheck(List init){
64 ITransientSet ret = (ITransientSet)EMPTY.asTransient();
65 int i=0;
66 for(Object key : init)
67 {
68 ret = (ITransientSet) ret.conj(key);
69 if(ret.count() != i + 1)
70 throw new IllegalArgumentException("Duplicate key: " + key);
71 ++i;
72 }
73 return (PersistentHashSet) ret.persistent();
74}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected