public int size() { if(complete) return data.size(); Iterator it = iterator(); while(it.hasNext()) it.next(); return data.size(); } };
@Override public boolean equals(Object o){ if(o==null) return false; if(! (o instanceof Collection)) return false; Collection<A> c = (Collection)o; Iterator<A> it1 = iterator(); Iterator<A> it2 = c.iterator(); while(it1.hasNext()){ if(!it2.hasNext()) return false; if(!Objects.equals(it1.next(),it2.next())) return false; } if(it2.hasNext()) return false; return true; } @Override
@Override public int hashCode(){ Iterator<A> it1 = iterator(); List<A> arrayList= new ArrayList<>(); while(it1.hasNext()){ arrayList.add(it1.next()); } return Objects.hashCode(arrayList.toArray()); } List<A> data =new ArrayList<>();