gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Hash, tekst i pdf osvezeni
authorDoni Pracner <quinnuendo@gmail.com>
Sun, 8 Nov 2015 14:27:16 +0000 (15:27 +0100)
committerDoni Pracner <quinnuendo@gmail.com>
Sun, 8 Nov 2015 14:27:16 +0000 (15:27 +0100)
Hash/hash.pdf
Hash/hash.txt

index 8a404a76846d379476326ecc28cb824dba4ba0ff..415e68efbc01b5725c3065ede5517cc907e0955b 100644 (file)
Binary files a/Hash/hash.pdf and b/Hash/hash.pdf differ
index 743c31c9a5e967f65091c5f099c9357792eddbc8..d9cdb1845dbb0ef454a8b6cfe28ac4e99ccaa62d 100644 (file)
@@ -152,11 +152,16 @@ tabele sa 503 mesta i oko 10\% za 997 mesta.
 Slično važi i za prezimena, budući da ih ima samo šestdesetak, bez
 obzira na koliko je dobar heš kod u klasi `String`, možemo imati samo
 šestdesetak različitih rezultata, odnosno dobijamo još gore rezultate,
-čak i za relativno malu tabelu sa 101 podskupom.
+čak i za relativno malu tabelu sa 101 podskupom. Ovde treba obratiti
+pažnju i da je moguće da imamo `null` polje.
 
 ```Java
     public int hashCode() {
-        return prezime.hashCode();
+        if (prezime != null) {
+            return prezime.hashCode();
+       } else {
+           return 0;
+       }
     }
 ```
 
@@ -181,7 +186,12 @@ jednostavno samo sabrati:
 
 ```Java
        public int hashCode() {
-               return prezime.hashCode() + broj;
+               int rez = 0;
+               if (prezime != null) {
+                       rez += prezime.hashCode();
+               }
+               rez += broj;
+               return rez;
        }
 ```
 
@@ -211,7 +221,12 @@ Na primer
 
 ```Java
        public int hashCode() {
-               return prezime.hashCode() * broj;
+               int rez = 1;
+               if (prezime != null) {
+                       rez *= prezime.hashCode();
+               }
+               rez *= broj;
+               return rez;
        }
 ```
 
@@ -415,8 +430,10 @@ prvim elementima.
 ```Java
        public int hashCode() {
                int rez = 0;
-               for (int i = 0;i < rezultati.length; i++) {
-                       rez = (rez + rezultati[i] * (MAX_DUZ+1-i)) * 7;
+               if (rezultati != null) {
+                       for (int i = 0; i < rezultati.length; i++) {
+                               rez = (rez + rezultati[i] * (MAX_DUZ + 1 - i)) * 7;
+                       }
                }
                return rez;
        }
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner