Czym się posługiwać przy tworzeniu słowników w Javie? HashMapem? LinkedListem? a może enumem?
Załóżmy, że mamy 1000 województw z całego świata. Nazwy są stałe i przypisane do nich inty również. Jak zrobić słownik by na wskazane województwo otrzymywać wartość przypisaną do województwa?
Zrobiłem to na 2 sposoby, weźcie mnie poprawcie:
sposob 1: enumem:
// slownik -------------------------------------------------------------------------------------------------------------------------------
public enum Slownik {
SLASKIE(54), WIELKOPOLSKIE(49), OKSYTANIA(15), NORMANDIA(13), SYBERIA(80);
private int x;
Slownik(int x) {
this.x = x;
}
int getX() {
return x;
}
}
// jedziemy z koksem ----------------------------------------------------------------------
public class Odleglosc {
public static void main(String args[]) {
String[] przypadki = { "NORMANDIA", "SYBERIA", "TROLOLOLO" };
int[] przypadkiWartosci = new int[3];
for (int i = 0; i < przypadki.length; i++) {
for (Slownik b : Slownik.values()) {
if (przypadki[i].equals(b.name())) {
przypadkiWartosci[i] = b.getX();
}
}
}
for (int a : przypadkiWartosci) {
System.out.println(a);
}
}
}
sposób 2: HashMapem:
import java.util.HashMap;
// slownik -------------------------------------------------------------------------------------------------------------------------------
public class Slownik {
public static final HashMap<String, Integer> hmap = new HashMap<>();
static {
hmap.put("SLASKIE", 54);
hmap.put("WIELKOPOLSKIE", 49);
hmap.put("OKSYTANIA", 15);
hmap.put("NORMANDIA", 13);
hmap.put("SYBERIA", 80);
}
public int get(Object key) {
return hmap.get(key);
// System.out.println();
}
}
import java.util.HashMap;
// jedziemy z koksem ----------------------------------------------------------------------
public class Odleglosc {
public static void main(String args[]) {
Slownik s = new Slownik();
String[] przypadki = { "NORMANDIA", "SYBERIA", "TROLOLOLO" };
int[] przypadkiWartosci = new int[3];
for (int i = 0; i < przypadki.length; i++) {
try {
przypadkiWartosci[i] = s.get(przypadki[i]);
} catch (NullPointerException e) {
System.out.println("oj oj oj nie znaleziono w slowniku wojewodztwa: " + przypadki[i]);
}
}
for (int a : przypadkiWartosci) {
System.out.println(a);
}
}
}