Hashtable

0

Oto moja klasa:

import java.util.Hashtable;
public final class Cennik {
private final static Cennik c = new Cennik();
private Cennik() {}
public static Cennik getCennik() {
return c;
}

public void set(String produkt, double cena) {
    Hashtable ht = new Hashtable();
    double d = cena;
    String s = produkt;
    ht.put(s, new Double(d));
    Object o = ht.get(s);
    Double val = (Double) o;
    double dv = val.doubleValue();
}

}

Przy kompilacji wyświetla się:
Note: Cennik.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

0

A jakie jest pytanie?
Jeśli chcesz uniknąć ostrzeżeń i w Hashmapie będą zawsze liczby typu double, to

Hashtable<Double> ht = new Hashtable<>Double();
0

Hashtable trzeba sparametryzować dwoma parametrami: Hashtable<TypKlucza, TypWartości>

Hashtable jest kolekcją synchronizowaną. Jeśli synchronizacja jest niepotrzebna to lepiej użyć klasy HashMap ze względów wydajnościowych.

PS:
Zresztą wystarczy zrobić to co jest napisane w opisie błędu: dodać odpowiedni parametr przy kompilacji. Wtedy pokazane jest jak byk miejsce, o które ciska się kompilator.

1 użytkowników online, w tym zalogowanych: 0, gości: 1