gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Hash, doterivanje poredjenja kancelarija
[spa2-materijali.git] / Hash / Kancelarija.java
1 import org.svetovid.io.SvetovidReader;
3 /**
4 * Koriscenje kancelarija
5 *
6 * Prosiruje InfoTip samo zbog jednostavnosti u TestHash, nema razloga inace.
7 */
8 public class Kancelarija extends InfoTip {
9 private String prezime;
10 private int broj;
12 public Kancelarija(String line) {
13 String[] delovi = line.replaceAll(" ", " ").split(" ");
14 if (delovi.length == 2) {
15 try {
16 prezime = delovi[0];
17 broj = Integer.parseInt(delovi[1]);
18 } catch (Exception ex) {
19 throw new RuntimeException(ex);
20 }
21 } else
22 throw new RuntimeException("Pogresan broj argumenata u redu");
23 }
25 public Kancelarija(String prezime, int broj) {
26 this.prezime = prezime;
27 this.broj = broj;
28 }
30 public Kancelarija() {
31 };
33 public boolean equals(Object o) {
34 // Objekat je identican
35 if (this == o) {
36 return true;
37 }
38 // Null je uvek razlicit
39 if (o == null) {
40 return false;
41 }
42 // Ako su klase razlicite, objekti ne mogu bili jednaki
43 if (getClass() != o.getClass()) {
44 return false;
45 }
47 // pretvaramo objekat u kancelariju
48 Kancelarija k2 = (Kancelarija) o;
50 // Prvo proveravamo broj
51 if (broj != other.broj) {
52 return false;
53 }
55 // A potom prezime
56 if (!Objects.equals(prezime, other.prezime)) {
57 return false;
58 }
60 // Proverili smo polja i sva su jednaka
61 return true;
62 }
64 public int hashCode() {
65 return prezime.hashCode() * broj;
66 }
68 @Override
69 public InfoTip ucitaj(SvetovidReader r) {
70 String prez = r.readToken(); // citamo jednu "rec"
71 int br = r.readInt();
72 InfoTip rez = new Kancelarija(prez, br);
73 return rez;
74 }
75 }
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner