java.util.Map
带有entrySet()方法,该方法可以...
返回此映射中包含的映射的Set视图。
是否有单个方法调用或一系列API调用来使用Java 7 API从集合中重构出一个集合,如标记所示,我需要在此处放置什么?在以下代码示例中?
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
上使用与Map
类似的方法,但是我似乎找不到。 最佳答案
Apache Commons Collections提供了MapUtils.putAll
可以执行您想要的操作,但是在幕后,您只需要避免for
循环逻辑,因此您也可以自己进行循环...
通常,无法从Map
条目中构造Set
,这些条目不需要您(或您正在调用的库函数)至少迭代一次条目-可能会有特殊情况,例如如果您有一个列表,您知道该列表按键排序,那么您可以在此之上编写一个只读映射实现,该实现使用二进制搜索来查找键。