在Java中的Map中查找以给定数字开头的数字

not*_*.nk -1 java dictionary key hashmap

我想计算一个以给定数字开头的HashMap中的所有键.每个键的大小并不总是相同的.例:

给定数字(长):

long l = 9988776655
Run Code Online (Sandbox Code Playgroud)

找到以该数字开头的键(长),如:

9988776655xxxxxxxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)

其中x代表任何整数.

我该如何处理这个问题?由于键的长度并不总是相同,因此我不能使用多个模运算.(或者我可以吗?)

Mur*_*nik 5

我只是将键转换为字符串:

public static long keysStartingWith(Map<Long, ?> map, long toSearch) {
    String searchStr = String.valueOf(toSearch);
    return map.keySet().stream().filter(k -> k.toString().startsWith(searchStr)).count();
}
Run Code Online (Sandbox Code Playgroud)