Naloga/Programiranje/Objektno programiranje/Razred Imenik/Rešitev z razredom Vector (Java)

Iz MaFiRaWiki

  1. import java.util.Vector;
  2.  
  3. public class ImenikVector<Kljuc extends Comparable<? super Kljuc>, Vrednost> {
  4. // komponente
  5. Vector<Kljuc> kljuc;
  6. Vector<Vrednost> vrednost;
  7. public ImenikVector() {
  8. // naredi prazen imenik
  9. kljuc = new Vector<Kljuc>();
  10. vrednost = new Vector<Vrednost>();
  11. }
  12. public Vrednost najdi(Kljuc x) {
  13. // poisci vrednost y, ki pripada x
  14. int i = kljuc.indexOf(x);
  15. if (i == -1) { return null; }
  16. else { return vrednost.elementAt(i); }
  17. }
  18. public void dodaj(Kljuc x, Vrednost y) {
  19. // dodaj kljuc x in vrednost y,
  20. // ce x ze obstaja, spremeni njegovo vrednost v y
  21. int i = kljuc.indexOf(x);
  22. if (i == -1) {
  23. // kljuc x ne obstaja
  24. kljuc.add(x);
  25. vrednost.add(y);
  26. }
  27. else {
  28. // kljuc x je na mestu i
  29. // to ne deluje: vrednost.elementAt(i) = y
  30. vrednost.set(i, y);
  31. }
  32. }
  33. public void zbrisi(Kljuc x) {
  34. // zbrisi kljuc x in pripadajoco vrednost,
  35. // ce x ne obstaja, ne naredi nicesar
  36. int i = kljuc.indexOf(x);
  37. if (i != -1) {
  38. kljuc.removeElementAt(i);
  39. vrednost.removeElementAt(i);
  40. }
  41. }
  42. }

Preizkus z DrJava:

> ImenikVector<String,int> v = new ImenikVector<String,int>();
> v.dodaj("Micka", 15);
> v.dodaj("Janez", 8);
> v.najdi("Janez")
8
> v.najdi("Peter")
null
> v.dodaj("Janez", 13);
> v.najdi("Janez")
13
> v.zbrisi("Micka");
Osebna orodja