From 054f138ca688301b903db73bdbf1c39916fd2538 Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Tue, 19 Nov 2019 19:38:08 +0100 Subject: [PATCH] Hash, primeri, doterivanja Java kodova --- Hash/primeri/Gadjanje.java | 36 ++++++++++++++++++++++-------------- Hash/primeri/XO.java | 4 +++- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/Hash/primeri/Gadjanje.java b/Hash/primeri/Gadjanje.java index 0a3ebfb..33327c2 100644 --- a/Hash/primeri/Gadjanje.java +++ b/Hash/primeri/Gadjanje.java @@ -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; diff --git a/Hash/primeri/XO.java b/Hash/primeri/XO.java index f148e8e..ae1b0a3 100644 --- a/Hash/primeri/XO.java +++ b/Hash/primeri/XO.java @@ -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; -- 2.17.1