diff --git a/core/src/main/java/it/cavallium/warppi/math/FunctionDynamic.java b/core/src/main/java/it/cavallium/warppi/math/FunctionDynamic.java index 883a6327..7d5e3637 100644 --- a/core/src/main/java/it/cavallium/warppi/math/FunctionDynamic.java +++ b/core/src/main/java/it/cavallium/warppi/math/FunctionDynamic.java @@ -133,10 +133,10 @@ public abstract class FunctionDynamic implements Function { @Override public abstract FunctionDynamic clone(); - + @Override public int hashCode() { - return functions.hashCode() + 883 * super.hashCode(); + return Arrays.hashCode(functions); } @Override diff --git a/core/src/main/java/it/cavallium/warppi/math/FunctionOperator.java b/core/src/main/java/it/cavallium/warppi/math/FunctionOperator.java index c43de8b2..10a52941 100644 --- a/core/src/main/java/it/cavallium/warppi/math/FunctionOperator.java +++ b/core/src/main/java/it/cavallium/warppi/math/FunctionOperator.java @@ -6,6 +6,8 @@ import it.cavallium.warppi.util.Errors; import it.cavallium.warppi.util.Utils; import it.unimi.dsi.fastutil.objects.ObjectArrayList; +import java.util.Objects; + public abstract class FunctionOperator implements Function { /** @@ -175,7 +177,7 @@ public abstract class FunctionOperator implements Function { @Override public int hashCode() { - return parameter1.hashCode() + 7 * parameter2.hashCode() + 883 * super.hashCode(); + return Objects.hash(parameter1, parameter2); } @Override diff --git a/core/src/main/java/it/cavallium/warppi/math/FunctionSingle.java b/core/src/main/java/it/cavallium/warppi/math/FunctionSingle.java index 9f17d25f..be61d9f6 100644 --- a/core/src/main/java/it/cavallium/warppi/math/FunctionSingle.java +++ b/core/src/main/java/it/cavallium/warppi/math/FunctionSingle.java @@ -4,6 +4,8 @@ import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; +import java.util.Objects; + public abstract class FunctionSingle implements Function { private boolean simplified; @@ -117,7 +119,7 @@ public abstract class FunctionSingle implements Function { @Override public int hashCode() { - return parameter.hashCode() + 883 * super.hashCode(); + return Objects.hash(parameter); } @Override diff --git a/core/src/main/java/it/cavallium/warppi/math/functions/Variable.java b/core/src/main/java/it/cavallium/warppi/math/functions/Variable.java index 32fde17c..8ff7da53 100644 --- a/core/src/main/java/it/cavallium/warppi/math/functions/Variable.java +++ b/core/src/main/java/it/cavallium/warppi/math/functions/Variable.java @@ -8,6 +8,8 @@ import it.cavallium.warppi.math.rules.Rule; import it.cavallium.warppi.util.Error; import it.unimi.dsi.fastutil.objects.ObjectArrayList; +import java.util.Objects; + public class Variable implements Function { protected char var; @@ -84,7 +86,7 @@ public class Variable implements Function { @Override public int hashCode() { - return toString().hashCode(); + return Objects.hash(var, type); } @Override