gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Doterivanja objedinjenog resenja za lavirint
[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;
31 // proveravamo da li je polje null pre dalje provere
32 if (rezultati != null && o2.rezultati != null) {
33 if (o2.rezultati.length == rezultati.length) {
34 for (int i = 0; i < rezultati.length; i++) {
35 if (o2.rezultati[i] != rezultati[i]) {
36 // cim je nesto razlicito nisu isti
37 return false;
38 }
39 }
40 // ako se sve vrednosti slazu isti su
41 return true;
42 }
43 return false;
44 } else {
45 // vracamo da li su oba null, tj da li su jednaki
46 return (rezultati == null && o2.rezultati == null);
47 }
48 }
50 @Override
51 public int hashCode() {
52 int rez = 0;
53 if (rezultati != null) {
54 for (int i = 0; i < rezultati.length; i++) {
55 rez = (rez + rezultati[i] * (MAX_DUZ + 1 - i)) * 7;
56 }
57 }
58 return rez;
59 }
61 @Override
62 public InfoTip ucitaj(SvetovidReader r) {
63 Gadjanje rez = new Gadjanje();
64 int br = r.readInt();
65 rez.rezultati = new int[br];
66 for (int i = 0; i < br; i++) {
67 rez.rezultati[i] = r.readInt();
68 }
69 return rez;
70 }
72 public String toString() {
73 String str = "Gadjanje (" + rezultati.length + "):";
74 for (int i : rezultati) {
75 str += " " + i;
76 }
77 return str;
78 }
80 // pomocni metod za lakse testiranje
81 public static void main(String[] args) {
82 new TestHash(new Gadjanje(), "mete").run();
83 }
85 }
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner