java.util.Map附带了entrySet()方法.
返回此映射中包含的映射的集合视图。
是否有一个方法调用或一系列API调用来使用Java7API重新构造集合中的集合,作为标记,我需要在这里放置什么?在下面的代码示例中?
package so;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class SetMapExample {
public static void main(String[] args) {
Map<String, String> m = new HashMap<String, String>();
m.put("k1", "v1");
m.put("k2", "v2");
Set<Map.Entry<String, String>> s = m.entrySet();
Map<String, String> ms = s... // what do I need to put here?
}
}如果可能的话,我不想使用for循环,也不希望使用类似于entrySet on Map的方法,但我似乎找不到。
发布于 2014-02-11 15:53:57
提供了MapUtils.putAll,它可以做您想做的任何事情,但是在封面下面只需要执行您想要避免的for循环逻辑,所以您最好自己做循环。
通常,不需要您(或您正在调用的库函数)对条目进行至少一次迭代的条目的Map是无法构造的--可能有一些特殊情况,例如,如果您有一个按键排序的条目列表,那么您可以在上面编写一个只读地图实现,在上面使用二进制搜索查找键。
发布于 2014-02-11 15:49:07
Set在幕后使用Map,而Set中的值实际上是Map中的键。因此,如果没有for循环,就不可能完成所需的任务。使用普通Java (没有其他花哨的框架),您只能这样做:
for(Map.Entry<String,String> entry : s) {
ms.put(entry.getKey(), entry.getValue());
}发布于 2014-02-11 15:46:54
JDK没有提供这样的方法,但是如果需要,可以使用Guava。提示:使用Transofrmers或Maps。您必须编写自己的“转换器”--番石榴的Function的单行实现。如果将其实现为泛型顶级类,则可以在以后重用它。
https://stackoverflow.com/questions/21706320
复制相似问题