有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何更快地从映射返回键和值?

我有一段代码,可以在缓存的映射中找到一些键。如果使用,则返回
通过get键和值

private Map<String, Map<Character, Integer>> cache = new HashMap<>();
if (cache.containsKey(inputData)) {
    return cache.get(inputData);
}

因此,我使用了两个查找运算符。我能找到一个吗?或者我怎样才能做得更快


共 (2) 个答案

  1. # 1 楼答案

    试试getOrDefault

    cache.getOrDefault(inputData, defaultValue);
    

    如果有键,则返回键对应的值,否则返回默认值

    还要注意get的时间复杂度是O(1),因此就复杂度而言,您的代码相当不错。还要记住,过早的优化是万恶之源

  2. # 2 楼答案

    您只需调用get()方法,然后将返回值与null进行比较

    final Map<Character, Integer> value = cache.get(inputData);
    if (value != null) {
        return value;
    }