5

我有一个HashMap<String, String>. 如果我想创建 的字符串数组hashmap.values(),我们可以将其创建为

String[] strArray = new String[hashmap.size()]

但我的问题是,如果 hashmap 值包含“A,B,C”,那么我需要将 A、B 和 C 添加到 strArray。

4

3 回答 3

21

使用ArrayList.

List<String> myList = new ArrayList<String>();

无论您的尺寸是多少,您HashMap都可以轻松地使用ArrayList.

如果你需要一个数组,你可以使用

String[] arr = myList.toArray(new String[myList.size()]);

当你完成时。

于 2012-06-21T12:26:57.153 回答
2

您可以在需要数组时获取值的副本。

Map<Double, String> map = ...
String[] values = map.values().toArray(new String[map.size()]);

如果您更改地图(即使大小没有改变),数组也不会改变,您需要再复制一份。这些值需要是唯一的吗?

所以我需要用值(A,B,C,P,Q,R ...,Z)创建字符串数组。

在这种情况下,您似乎想要执行以下操作。

Map<Double, String> map = ...
List<String> valueList = new ArrayList<>();
for(String value: map.values())
   valueList.addAll(Arrays.asList(value.split(",")));
String[] values = valueList.toArray(new String[valueList.size()]);
于 2012-06-21T12:32:32.857 回答
0

它需要是一个数组吗?使用 Maps,您可以获得值集的键。

于 2012-06-21T12:28:17.470 回答