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

Class APersistentVector

src/jvm/clojure/lang/APersistentVector.java:19–699  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

17import java.util.function.Consumer;
18
19public abstract class APersistentVector extends AFn implements IPersistentVector, Iterable,
20 List,
21 RandomAccess, Comparable,
22 Serializable, IHashEq {
23
24private static final long serialVersionUID = 4667575149454420891L;
25
26int _hash;
27int _hasheq;
28
29public String toString(){
30 return RT.printString(this);
31}
32
33public ISeq seq(){
34 if(count() > 0)
35 return new Seq(this, 0);
36 return null;
37}
38
39public ISeq rseq(){
40 if(count() > 0)
41 return new RSeq(this, count() - 1);
42 return null;
43}
44
45static boolean doEquals(IPersistentVector v, Object obj){
46 if(obj instanceof IPersistentVector)
47 {
48 IPersistentVector ov = (IPersistentVector) obj;
49 if(ov.count() != v.count())
50 return false;
51 for(int i = 0;i< v.count();i++)
52 {
53 if(!Util.equals(v.nth(i), ov.nth(i)))
54 return false;
55 }
56 return true;
57 }
58 else if(obj instanceof List)
59 {
60 Collection ma = (Collection) obj;
61 if(ma.size() != v.count() || ma.hashCode() != v.hashCode())
62 return false;
63 for(Iterator i1 = ((List) v).iterator(), i2 = ma.iterator();
64 i1.hasNext();)
65 {
66 if(!Util.equals(i1.next(), i2.next()))
67 return false;
68 }
69 return true;
70 }
71 else
72 {
73 if(!(obj instanceof Sequential))
74 return false;
75 ISeq ms = RT.seq(obj);
76 for(int i = 0; i < v.count(); i++, ms = ms.next())

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected