Explorar o código

Implementation hashcode

Arthur Brandao %!s(int64=6) %!d(string=hai) anos
pai
achega
24ccbfbcd3
Modificáronse 2 ficheiros con 8 adicións e 13 borrados
  1. 5 0
      src/migl/util/ConsEmptyList.java
  2. 3 13
      src/migl/util/ConsListImpl.java

+ 5 - 0
src/migl/util/ConsEmptyList.java

@@ -63,6 +63,11 @@ public class ConsEmptyList<E> implements ConsList<E> {
 		return "()";
 	}
 	
+	@Override
+	public int hashCode() {
+		return 0;
+	}
+	
 	@Override
 	public boolean equals(Object obj) {
 		return (obj instanceof ConsEmptyList<?>);

+ 3 - 13
src/migl/util/ConsListImpl.java

@@ -91,24 +91,14 @@ public class ConsListImpl<E> extends Cons<E, ConsList<E>> implements ConsList<E>
 
 	@Override
 	public int hashCode() {
-		final int prime = 31;
 		int result = super.hashCode();
-		result = prime * result + size;
-		return result;
+		return result + size * this.left().hashCode();
 	}
 
 	@Override
 	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (!super.equals(obj))
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		ConsListImpl other = (ConsListImpl) obj;
-		if (size != other.size)
-			return false;
-		return true;
+		//Equals de cons suffisant
+		return super.equals(obj);
 	}
 	
 }