我想在模式匹配的地图中找到键.
Ex:-
Map<String, String> map = new HashMap<String, String>();
map.put("address1", "test test test");
map.put("address2", "aaaaaaaaaaa");
map.put("fullname", "bla bla");
Run Code Online (Sandbox Code Playgroud)
从上面的地图,我想得到前缀为"地址"的键值.因此,在此示例中,输出应该是前两个结果("address1"和"address2").
我怎样才能动态实现这个目标?
谢谢.
Ale*_* C. 21
您可以获取keySet地图,然后过滤以仅获取以"地址"开头的键,并将有效键添加到新集.
使用Java 8,它有点简洁:
Set<String> set = map.keySet()
.stream()
.filter(s -> s.startsWith("address"))
.collect(Collectors.toSet());
Run Code Online (Sandbox Code Playgroud)
如果你有Java 8的功能,这样的东西应该工作:
Set<String> addresses = map.entrySet()
.stream()
.filter(entry -> entry.getKey().startsWith("address"))
.map(Map.Entry::getValue)
.collect(Collectors.toSet());
Run Code Online (Sandbox Code Playgroud)
像这样的东西:
for (Entry<String, String> entry : map.entrySet()) {
if (entry.getKey().startsWith("address")) {
// do stuff with entry
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34093 次 |
| 最近记录: |