如何检查 Map 中的键是否以给定的字符串值开头

2022-09-03 06:42:16

我正在寻找一种像这样的方法:

myMap.containsKeyStartingWith("abc"); // returns true if there's a key starting with "abc" e.g. "abcd"

MapUtils.containsKeyStartingWith(myMap, "abc"); // same

我想知道是否有人知道一个简单的方法来做到这一点

谢谢


答案 1

这可以通过标准的排序地图来完成:

Map<String,V> tailMap = myMap.tailMap(prefix);
boolean result = (!tailMap.isEmpty() && tailMap.firstKey().startsWith(prefix));

未排序的映射(例如 )本质上不支持前缀查找,因此对于那些必须迭代所有键的映射。HashMap


答案 2

从映射中,您可以获得一组键,如果它们是字符串,则可以迭代Set的元素并检查startsWith("abc")