@Override public boolean equals(Object o) {if (o == this) {return true;}if (!(o instanceof List)) {return false;}List<?> that = (List<?>) o;int s = size;if (that.size() != s) {return false;}Object[] a = array;if (that instanceof RandomAccess) {for (int i = 0; i < s; i++) {Object eThis = a[i];Object ethat = that.get(i);if (eThis == null ? ethat != null : !eThis.equals(ethat)) {return false;}}} else {  Iterator<?> it = that.iterator();for (int i = 0; i < s; i++) {Object eThis = a[i];Object eThat = it.next();if (eThis == null ? eThat != null : !eThis.equals(eThat)) {return false;}}}return true;}
public override bool Equals(object o){if (o == this){return true;}if (!(o is java.util.List<E>)){return false;}java.util.List<E> that = (java.util.List<E>)o;int s = _size;if (that.size() != s){return false;}object[] a = array;if (that is java.util.RandomAccess){{for (int i = 0; i < s; i++){object eThis = a[i];object ethat = that.get(i);if (eThis == null ? ethat != null : !eThis.Equals(ethat)){return false;}}}}else{java.util.Iterator<E> it = that.iterator();{for (int i = 0; i < s; i++){object eThis = a[i];object eThat = it.next();if (eThis == null ? eThat != null : !eThis.Equals(eThat)){return false;}}}}return true;}