gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
549fe0dcc3c50f51bf70f16f360bfe573e627ca7
[spa2-materijali.git] / Hash / 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(String linija) {
13 String[] delovi = linija.replaceAll(" ", " ").split(" ");
14 if (delovi.length > 0) {
15 try {
16 int br = Integer.parseInt(delovi[0]);
17 rezultati = new int[br];
18 for (int i = 0; i < br; i++) {
19 rezultati[i] = Integer.parseInt(delovi[i + 1]);
20 }
21 } catch (Exception ex) {
22 throw new RuntimeException(ex);
23 }
24 } else
25 throw new RuntimeException("Pogresan broj argumenata u redu");
26 }
28 public Gadjanje() {
29 // prazan konstruktor potreban za test program
30 }
32 public boolean equals(Object o) {
33 // Objekat je identican
34 if (this == o) {
35 return true;
36 }
37 // Null je uvek razlicit
38 if (o == null) {
39 return false;
40 }
41 // Ako su klase razlicite, objekti ne mogu bili jednaki
42 if (getClass() != o.getClass()) {
43 return false;
44 }
46 Gadjanje o2 = (Gadjanje) o;
47 if (o2.rezultati.length == rezultati.length) {
48 for (int i = 0; i < rezultati.length; i++) {
49 if (o2.rezultati[i] != rezultati[i])
50 return false;
51 }
52 return true;
53 }
54 return false;
55 }
57 @Override
58 public int hashCode() {
59 int rez = 0;
60 for (int i = 0; i < rezultati.length; i++) {
61 rez = (rez + rezultati[i] * (MAX_DUZ + 1 - i)) * 7;
62 }
63 return rez;
64 }
66 @Override
67 public InfoTip ucitaj(SvetovidReader r) {
68 Gadjanje rez = new Gadjanje();
69 int br = r.readInt();
70 rez.rezultati = new int[br];
71 for (int i = 0; i < br; i++) {
72 rez.rezultati[i] = r.readInt();
73 }
74 return rez;
75 }
77 public String toString() {
78 String str = "Gadjanje (" + rezultati.length + "):";
79 for (int i : rezultati) {
80 str += " " + i;
81 }
82 return str;
83 }
84 }
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner