gitweb on Svarog

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