@Override
    public int hashCode() {
    	int hashCode = 1;
    	int size = size();
    	for (int i=0; i<size; i++) {
    		E elem = doGet(i);
    		hashCode = 31*hashCode + hashCodeElem(elem);
    	}
    	return hashCode;
    }
An application can use this operation to minimize the storage of an instance.
jphp-runtime/src/php/runtime/memory/support/IList.java