Preciso converter a HashMap<String, Object>
em um array; alguém poderia me mostrar como é feito?
java
arrays
collections
hashmap
açúcar queimado
fonte
fonte
Respostas:
Editar
Deve-se observar que a ordem de ambas as matrizes pode não ser a mesma. Consulte a resposta oxbow_lakes para obter uma abordagem melhor para iteração quando o par chave / valores são necessários.
fonte
Set
e os valores para aCollection
. Embora eles sejam tecnicamente convertidos em matrizes (e respondam à sua pergunta), o conceito do par de valores-chave foi perdido - razão pela qual esta é uma resposta muito enganosa (e perigosa) ....Se quiser as chaves e os valores, você sempre pode fazer isso por meio de
entrySet
:De cada entrada, você pode (é claro) obter a chave e o valor por meio dos métodos
getKey
egetValue
fonte
{key, value}[]
o oposto dekey[], value[]
Se você tem
HashMap<String, SomeObject> hashMap
então:Retornará um
Object[]
. Se, em vez disso, você quiser uma matriz do tipoSomeObject
, poderá usar:fonte
values()
vez dekeySet()
uma matriz deSomeObject
.Para garantir a ordem correta para cada array de Chaves e Valores, use isto (as outras respostas usam
Set
s individuais que não oferecem garantia quanto ao pedido.fonte
Uma alternativa à sugestão do CrackerJacks, se você quiser que o HashMap mantenha a ordem, você pode considerar o uso de um LinkedHashMap. Até onde eu sei, sua funcionalidade é idêntica a um HashMap, mas é FIFO, então mantém a ordem em que os itens foram adicionados.
fonte
Usei quase o mesmo que @kmccoy, mas em vez de usei
keySet()
issofonte
fonte
Para entrar em uma matriz de dimensão.
Para entrar na matriz de duas dimensões.
fonte
Se você estiver usando Java 8+ e precisar de um bidimensional
Array
, talvez para provedores de dados TestNG, você pode tentar:Se seus
Object
s são seString
você precisa de umString[][]
, tente:fonte
Você também pode tentar isso.
Aqui estou usando String como tipo de retorno. Você pode alterá-lo para o tipo de retorno exigido por você.
fonte
HashMap()
mas sua solução é sobreHashtable()
... Existem algumas diferenças entre elesfonte
fonte