如果我们在开始时不知道字符串的数量,如何创建动态字符串数组?

时间:2012-06-21 12:25:18

标签: java

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

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

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

3 个答案:

答案 0 :(得分:21)

使用ArrayList

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

无论HashMap的大小如何,您都可以轻松使用ArrayList

如果您需要阵列,可以使用

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

完成后。

答案 1 :(得分:2)

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

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

如果更改地图(即使尺寸没有改变),阵列也不会改变,您需要另外复制。这些值是否必须是唯一的?

  

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

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

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()]);

答案 2 :(得分:0)

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