gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Hash, primeri, doterivanja Java kodova
[spa2-materijali.git] / Hash / primeri / Gadjanje.java
1 import org.svetovid.io.SvetovidReader;
3 /**
4 * Gadjanje mete
5 *
6 * Prosiruje InfoTip samo zbog jednostavnosti u TestHash, nema razloga inace.
7 */
8 public class Gadjanje extends InfoTip {
9 private int[] rezultati;
10 private static int MAX_DUZ = 20;
12 public Gadjanje() {
13 // prazan konstruktor potreban za test program
14 }
16 public boolean equals(Object o) {
17 // Objekat je identican
18 if (this == o) {
19 return true;
20 }
21 // Null je uvek razlicit
22 if (o == null) {
23 return false;
24 }
25 // Ako su klase razlicite, objekti ne mogu bili jednaki
26 if (getClass() != o.getClass()) {
27 return false;
28 }
30 Gadjanje o2 = (Gadjanje) o;
32 // proveravamo da li su polja null pre dalje provere
33 if (rezultati == null && o2.rezultati != null) {
34 return false;
35 }
36 if (rezultati != null && o2.rezultati == null) {
37 return false;
38 }
40 // ako u obe instance nije null, poredimo delove
41 if (rezultati != null && o2.rezultati != null) {
42 // proverimo duzinu.
43 if (o2.rezultati.length != rezultati.length) {
44 return false;
45 }
46 // ako je ista duzina proveravamo elemente
47 for (int i = 0; i < rezultati.length; i++) {
48 if (o2.rezultati[i] != rezultati[i]) {
49 // cim je nesto razlicito nisu isti
50 return false;
51 }
52 }
53 }
54 // ako nije bilo razlika, vracamo da je sve ok
55 return true;
56 }
58 @Override
59 public int hashCode() {
60 int rez = 0;
61 if (rezultati != null) {
62 for (int i = 0; i < rezultati.length; i++) {
63 rez = (rez + rezultati[i] + 1) * 11;
64 }
65 }
66 return rez;
67 }
69 @Override
70 public InfoTip ucitaj(SvetovidReader r) {
71 Gadjanje rez = new Gadjanje();
72 int br = r.readInt();
73 rez.rezultati = new int[br];
74 for (int i = 0; i < br; i++) {
75 rez.rezultati[i] = r.readInt();
76 }
77 return rez;
78 }
80 public String toString() {
81 String str = "Gadjanje (" + rezultati.length + "):";
82 for (int i : rezultati) {
83 str += " " + i;
84 }
85 return str;
86 }
88 // pomocni metod za lakse testiranje
89 public static void main(String[] args) {
90 new TestHash(new Gadjanje(), "mete").run();
91 }
93 }
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner