gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Hash, primeri, doterivanja Java kodova
authorDoni Pracner <quinnuendo@gmail.com>
Tue, 19 Nov 2019 18:38:08 +0000 (19:38 +0100)
committerDoni Pracner <quinnuendo@gmail.com>
Tue, 19 Nov 2019 18:38:08 +0000 (19:38 +0100)
Hash/primeri/Gadjanje.java
Hash/primeri/XO.java

index 0a3ebfb..33327c2 100644 (file)
@@ -28,23 +28,31 @@ public class Gadjanje extends InfoTip {
                }
 
                Gadjanje o2 = (Gadjanje) o;
-               // proveravamo da li je polje null pre dalje provere
+
+               // proveravamo da li su polja null pre dalje provere
+               if (rezultati == null && o2.rezultati != null) {
+                       return false;
+               }
+               if (rezultati != null && o2.rezultati == null) {
+                       return false;
+               }
+
+               // ako u obe instance nije null, poredimo delove
                if (rezultati != null && o2.rezultati != null) {
-                       if (o2.rezultati.length == rezultati.length) {
-                               for (int i = 0; i < rezultati.length; i++) {
-                                       if (o2.rezultati[i] != rezultati[i]) {
-                                               // cim je nesto razlicito nisu isti
-                                               return false;
-                                       }
+                       // proverimo duzinu.
+                       if (o2.rezultati.length != rezultati.length) {
+                               return false;
+                       }
+                       // ako je ista duzina proveravamo elemente
+                       for (int i = 0; i < rezultati.length; i++) {
+                               if (o2.rezultati[i] != rezultati[i]) {
+                                       // cim je nesto razlicito nisu isti
+                                       return false;
                                }
-                               // ako se sve vrednosti slazu isti su
-                               return true;
                        }
-                       return false;
-               } else {
-                       // vracamo da li su oba null, tj da li su jednaki
-                       return (rezultati == null && o2.rezultati == null);
                }
+               // ako nije bilo razlika, vracamo da je sve ok
+               return true;
        }
 
        @Override
@@ -52,7 +60,7 @@ public class Gadjanje extends InfoTip {
                int rez = 0;
                if (rezultati != null) {
                        for (int i = 0; i < rezultati.length; i++) {
-                               rez = (rez + rezultati[i] + 1) * 11 ;
+                               rez = (rez + rezultati[i] + 1) * 11;
                        }
                }
                return rez;
index f148e8e..ae1b0a3 100644 (file)
@@ -41,6 +41,7 @@ public class XO extends InfoTip {
                XO o2 = (XO) o;
                // posto je u ovoj klasi uvek inicijalizovano polje table
                // i uvek je DIM x DIM ne moramo proveravati null
+               // niti da li su iste dimenzije
                for (int i = 0; i < DIM; i++) {
                        for (int j = 0; j < DIM; j++) {
                                if (o2.tabla[i][j] != tabla[i][j]) {
@@ -54,9 +55,10 @@ public class XO extends InfoTip {
        @Override
        public int hashCode() {
                int rez = 0;
+               int koef = 3;
                for (int i = 0; i < DIM; i++) {
                        for (int j = 0; j < DIM; j++) {
-                               rez += tabla[i][j];
+                               rez = koef * (rez + (tabla[i][j] + 2));
                        }
                }
                return rez;
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner