gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Hash, primeri se sada sami pokrecu.
[spa2-materijali.git] / Hash / Kancelarija.java
index 1772ec4..655a1cc 100644 (file)
@@ -1,3 +1,5 @@
+import java.util.Objects;
+
 import org.svetovid.io.SvetovidReader;
 
 /**
@@ -9,19 +11,6 @@ public class Kancelarija extends InfoTip {
        private String prezime;
        private int broj;
 
-       public Kancelarija(String line) {
-               String[] delovi = line.replaceAll("  ", " ").split(" ");
-               if (delovi.length == 2) {
-                       try {
-                               prezime = delovi[0];
-                               broj = Integer.parseInt(delovi[1]);
-                       } catch (Exception ex) {
-                               throw new RuntimeException(ex);
-                       }
-               } else
-                       throw new RuntimeException("Pogresan broj argumenata u redu");
-       }
-
        public Kancelarija(String prezime, int broj) {
                this.prezime = prezime;
                this.broj = broj;
@@ -48,13 +37,13 @@ public class Kancelarija extends InfoTip {
                Kancelarija k2 = (Kancelarija) o;
 
                // Prvo proveravamo broj
-               if (broj != other.broj) {
-                   return false;
+               if (broj != k2.broj) {
+                       return false;
                }
 
                // A potom prezime
-               if (!Objects.equals(prezime, other.prezime)) {
-                   return false;
+               if (!Objects.equals(prezime, k2.prezime)) {
+                       return false;
                }
 
                // Proverili smo polja i sva su jednaka
@@ -62,7 +51,12 @@ public class Kancelarija extends InfoTip {
        }
 
        public int hashCode() {
-               return prezime.hashCode() * broj;
+               int rez = 1;
+               if (prezime != null) {
+                       rez *= prezime.hashCode();
+               }
+               rez *= broj;
+               return rez;
        }
 
        @Override
@@ -72,4 +66,24 @@ public class Kancelarija extends InfoTip {
                InfoTip rez = new Kancelarija(prez, br);
                return rez;
        }
+
+       // pomocni metod za lakse testiranje
+       public static void main(String[] args) {
+               new TestHash(new Kancelarija(), "kancelarije").run();
+       }
+       
+       // ovaj konstruktor nije neophodan, ostavljen je kao primer
+       public Kancelarija(String line) {
+               String[] delovi = line.trim().split(" ");
+               if (delovi.length == 2) {
+                       try {
+                               prezime = delovi[0];
+                               broj = Integer.parseInt(delovi[1]);
+                       } catch (Exception ex) {
+                               throw new RuntimeException(ex);
+                       }
+               } else
+                       throw new RuntimeException("Pogresan broj argumenata u redu");
+       }
+
 }
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner