有问题我做了研究,但没有得到答案。可能我不是在寻找我需要的考试期限。这是我的问题。
Type mapType = new TypeToken<Map<String, String>>() {
}.getType();
Map<String, String[]> result = new Gson().fromJson(value1.get(i), mapType);
Set<String[]> setNew = result.values().stream().collect(Collectors.toSet());
这个setNew是hashSet,我按照预期在setNew中获取元素。上面的代码按预期工作,它为setNew提供了String数组(String [])。我对上面的代码没有任何问题,我认为这样我得到了所需的输出。
现在我想在setNew中添加元素。我尝试添加如何使用“setNew.add”方法添加Set,但它不允许,因为此方法仅适用于String。 .add的参数是 - > setNew.add(String [] e)。我试图将String转换为String数组,它可以工作,但它仍然不允许我将该字符串数组添加到我的setNew。
stream()
跟随collect()
过于复杂。您可以直接创建HashSet
而无需流式传输。
Set<String[]> setNew = new HashSet<>(result.values());
然后,如果你想添加额外的String[]
s,它就像这样简单:
setNew.add(new String[] {"foo"});
setNew.add(new String[] {"bar", "baz"});
我找到了答案。我在代码中做了更改。原始代码Map<String, String[]> result = new Gson().fromJson(value1.get(i), mapType);
将代码更改为Map<String, String> result = new Gson().fromJson(value1.get(i), mapType);
将String[]
改为String