Java 是否可以有一个包含HashMap键的数组?

Java 是否可以有一个包含HashMap键的数组?,java,arrays,hashmap,Java,Arrays,Hashmap,是的,基本上你能给数组添加HashMap键吗 例如,我可以拥有一个包含这些字符串HashMap键的字符串数组吗 HashMap container = new HashMap(); container.put("A", 1); container.put("B", 2); container.put("C", 5); container.put("D", 8); 将给您一个对象[] "A", "D", "B", "C" 顺序未定义 请注意,即使使用HashMap,keySet也将返回Set,

是的,基本上你能给数组添加HashMap键吗

例如,我可以拥有一个包含这些字符串HashMap键的字符串数组吗

HashMap container = new HashMap();
container.put("A", 1);
container.put("B", 2);
container.put("C", 5);
container.put("D", 8);
将给您一个对象[]

"A", "D", "B", "C"
顺序未定义

请注意,即使使用HashMap,keySet也将返回Set,但toArray仍然是Object[],因此需要强制转换:

String[] keys = (String[]) container.keySet().toArray();
或:


您可以创建新字符串[0],但它的效率较低,因为它会重新分配数组,所以最好先创建它,我不明白。您想要一个新字符串[]{a,B,C,D}吗?是的,您可以。看看HashMapkeySet和toArraySotirios Delimanolis,我需要一个引用HashMap keysHmm的数组。谢谢你的回答。我肯定需要数组是字符串数组。是否可以从HashMap键中创建一个字符串,然后将该新字符串添加到数组中;但是您仍然需要说String[]keys=String[]container.keySet.toArray;通过交换密钥和值并使用[code]String personA=Stringcontainer.get1,我成功地得到了我想要的东西;[/code]谢谢你的帮助:你不能施放toArray的结果。如果需要T类型的数组,则需要使用重载方法。
String[] keys = (String[]) container.keySet().toArray();
String[] keys = container.keySet().toArray(new String[container.keySet().size()]);