【发布时间】:2015-11-17 15:27:49
【问题描述】:
我从一个方法中以Map<String, Set<String>> 的形式获取数据。但我希望它采用Map<String, String[]> 的形式。
即,我只想将特定键的映射值从 Set<String> 转换为 String[] 数组。
我尝试过这种方式,迭代加载的集合映射并为键正确获取 String[] 数组。
但我只是想知道,有没有比这更好的解决方案。
Map<String, Set<String>> testmap = new HashMap<String, Set<String>>();
Map<String, String[]> testmapArray = new HashMap<String, String[]>();
Set<String> testSet = new TreeSet<String>();
testSet.add("1");
testSet.add("2");
testSet.add("3");
testmap.put("A", testSet);
testmapArray.put("A", testSet.toArray(new String[testSet.size()]));
Set<String> testSet1 = new TreeSet<String>();
testSet1.add("4");
testSet1.add("5");
testSet1.add("6");
testmap.put("B", testSet1);
testmapArray.put("A", testSet1.toArray(new String[testSet1.size()]));
System.out.println(testmap);
Iterator it = testmap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry)it.next();
testmapArray.put(pair.getKey().toString(), testmap.get(pair.getKey()).toArray(new String[testmap.get(pair.getKey()).size()]));
}
System.out.println(testmapArray);
谁能帮帮我?
【问题讨论】:
-
你所做的已经足够下降了。完蛋了。
-
好吧,你还是应该避免使用原始类型 ;)。
-
@Tom 是的..这就是我发布这个的原因,我从这段代码中得到了一些警告..!!!
-
所以?由于您已经知道泛型类型是什么(您已经在使用它们),您应该能够不使用原始的
Iterator。所以添加泛型类型。你可以这样做:)。
标签: java arrays collections hashmap set