Muszę przekonwertować a HashMap<String, Object>
na tablicę; czy ktoś mógłby mi pokazać, jak to się robi?
java
arrays
collections
hashmap
spalony cukier
źródło
źródło
Odpowiedzi:
Edytować
Należy zauważyć, że kolejność obu tablic może nie być taka sama. Zobacz odpowiedź oxbow_lakes, aby uzyskać lepsze podejście do iteracji, gdy potrzebna jest para klucz / wartość.
źródło
Set
a wartości na aCollection
. Chociaż są one technicznie konwertowane na tablice (i odpowiadają na twoje pytanie), koncepcja pary klucz-wartość została utracona - dlatego jest to bardzo myląca (i niebezpieczna) odpowiedź ...Jeśli chcesz klucze i wartości, zawsze możesz to zrobić za pomocą
entrySet
:Z każdego wpisu możesz (oczywiście) uzyskać zarówno klucz, jak i wartość za pomocą metod
getKey
igetValue
źródło
{key, value}[]
w przeciwieństwie dokey[], value[]
Jeśli masz
HashMap<String, SomeObject> hashMap
wtedy:Zwróci plik
Object[]
. Jeśli zamiast tego chcesz mieć tablicę tego typuSomeObject
, możesz użyć:źródło
values()
zamiastkeySet()
tablicySomeObject
.Aby zagwarantować prawidłową kolejność dla każdej tablicy kluczy i wartości, użyj tego (pozostałe odpowiedzi używają indywidualnych,
Set
które nie dają gwarancji co do zamówienia.źródło
Alternatywa dla sugestii CrackerJacks, jeśli chcesz, aby HashMap utrzymywała porządek, możesz zamiast tego rozważyć użycie LinkedHashMap. O ile wiem, jego funkcjonalność jest identyczna z HashMap, ale jest to FIFO, więc zachowuje kolejność, w jakiej zostały dodane elementy.
źródło
Użyłem prawie tego samego co @kmccoy, ale zamiast tego
keySet()
zrobiłem toźródło
źródło
Aby uzyskać dostęp do jednej tablicy wymiarów.
Aby dostać się do tablicy dwuwymiarowej.
źródło
Jeśli używasz Java 8+ i potrzebujesz dwuwymiarowego
Array
, być może dla dostawców danych TestNG, możesz spróbować:Jeśli twoje
Object
sąString
si i potrzebujeszString[][]
, spróbuj:źródło
Ty też możesz spróbować.
Tutaj używam String jako typu zwracanego. Możesz zmienić go na wymagany przez siebie typ zwrotu.
źródło
HashMap()
ale twoje rozwiązanie dotyczyHashtable()
... Są między nimi pewne różniceźródło
źródło