将字符串添加到地图

时间:2018-01-25 12:48:34

标签: java

我有两个相同大小的String数组。

我需要创建一个名称和值Map。如何将它们添加到Map

String[] labelNames = request.getParameterValues("labelName");
String[] labelValues = request.getParameterValues("labelValues");
Map<String,String> labels = new HashMap<>();

5 个答案:

答案 0 :(得分:2)

您的arrays大小相同,因此您可以使用相同的for-loop对其进行迭代,您可以同时访问index putmap for(int i=0; i<labelNames.length; i++){ labels.put(labelNames[i], labelValues [i]); }

msg.payload = Buffer.from(msg.payload);
return msg;

答案 1 :(得分:2)

如果您有两个大小相同的数组,只需使用labelValuefor(int i = 0; i < labelNames.length; i++) { labels.put(labelNames[i], labelValues[i]); }

进行for循环
if(labelNames.length == labelValues.length) {...}

如果您不确定两个数组的大小是否相同,请在循环之前添加此检查:

pg

答案 2 :(得分:1)

java7的解决方案 - 您可以使用带有单个索引的for循环结构同时进入2个数组。

至于假设labelNames.length == labelValues.length,通常最好经常检查它以确保您没有引入错误并获得意外结果:

if(labelNames.length == labelValues.length) {
    int i;
    for(i = 0; i < labelNames.length; i++) {
        labels.put(labelNames[i], labelValues[i]);
    }
}

java8中,您可以使用Streams替代:

Map<String, String> map =
        IntStream.range(0, names.length)
                .boxed()
                .collect(Collectors.toMap(i -> labelNames[i], i -> labelValues[i]));

答案 3 :(得分:1)

使用此代码:

Map<String,String> labels = new HashMap<>();
for(int i=0;i<labelNames.length;i++)
    labels.put(labelNames[i] , labelValues[i]);

答案 4 :(得分:1)

首先:

 Map<String,String> labels = new HashMap<String, String>();

然后:

for (int i=0; i < labelNames.length; i++) 
{
  labels.put(labelNames[i], labelValues[i]);
}