Witam.
Nie wiem dlaczego, ale wprowadzając dane do HashMapy, a następnie wyświetlając je ciągle wypisuje null, choć w rzeczywistości dane są dodane. Czym to może być spowodowane?
- Rejestracja:prawie 8 lat
- Ostatnio:ponad 6 lat
- Postów:122
Pokaż kod.
- Rejestracja:ponad 8 lat
- Ostatnio:prawie 4 lata
- Postów:31
A czy mozna w jakis sposob podać tam index?


- Rejestracja:prawie 10 lat
- Ostatnio:ponad 6 lat
- Lokalizacja:Wawa
- Postów:250
Napisz sobie konkretnie na kartce jaki chcesz mieć rezultat. Minimum 3 przykłady, żebyś miał jasność jaki ma być wynik końcowy.
To jest podstawa. Jeśli już wiesz czego potrzebujesz wpisujesz krótką frazę w googlei na pewno znajdziesz odpowiedź,
Warto też od razu zajrzeć do dokumentacji, żeby obejrzeć jakie metody ma mapa a jakie lista.
Jeśli chodzi ci o taki wynik:
miasto: Warszawa, Poznań, Kraków
państwo: Francja, Polska, Brazylia
rzeka: Wołga, Tamiza, Odra
To możesz użyć listy, podanej do mapy jako parametr.

- Rejestracja:ponad 10 lat
- Ostatnio:6 miesięcy
- Lokalizacja:Warszawa
- Postów:3573
Ale HashMapa nie ma z góry ustalonej kolejności więc jakim cudem mógłbyś się dostac po indeksie? Bez sensu :P
A jak chcesz w jednej komórce mieć 2 wartości to zrób np. Liste tablic o wielkości 2
- Rejestracja:prawie 12 lat
- Ostatnio:około 14 godzin
- Postów:1131
@chrupek97: możesz zrobić kładę która będzie mieć dwa pola i wrzucić ja do listy

- Rejestracja:około 21 lat
- Ostatnio:prawie 3 lata
- Lokalizacja:Space: the final frontier
- Postów:26433
@chrupek97 jak chcesz używać indeksów to wkładaj dane do ArrayList a nie do HashMap. Jeśli pół biedy jakby to było LinkedHashMap, bo miałbyś zachowaną kolejność wstawiania, ale zwykłe HashMap będzie miało dla ciebie zupełnie "losową" kolejność.
- Rejestracja:ponad 9 lat
- Ostatnio:5 dni
- Lokalizacja:Warszawa
- Postów:89
Jak chcesz po prostu iterować po wartościach mapy to możesz użyć metody values()
żeby mieć dostęp do kolekcji wartości i po niej iterować.

- Rejestracja:prawie 15 lat
- Ostatnio:około 3 godziny
- Lokalizacja:Laska, z Polski
- Postów:10073
To jest najbardziej Clean rozwiązanie:
List<Pair<String, String>> list = new ArrayList<>();
list.add(new Pair("foo", "bar"));
list.add(new Pair("siema", "yo");
list.get(0).getKey() // "foo"
list.get(0).getValue() // "bar"
list.get(1).getKey() // "siema"
list.get(1).getValue() // "yo"
Jeśli stwierdzisz że potrzebujesz więcej niż dwie wartości, to sugeruję zrobić swóją klasę o 3 lub więcej polach, i wtedy taka List<>
trzymałaby obiekty Twojej klasy, zamiast Pair<>
.
@Pablitto77 Wtedy nie będzie miał dostępu do kluczy. Ps: tak, wiem że zamiast tego mógłby zrobić keys()
ale wtedy osobno wyciągałby klucze i wartości, średnie rozwiązanie, poza tym chyba nie jest powiedziane że klucze i wartości muszą być w dobrej kolejności bo mapa nie trzyma orderu. Już lepiej zrobić dwie listy.