java - 第 n 次调用函数

标签 java recursion dictionary

我似乎无法理解如何实现这个功能。原型(prototype)如下:

public static <K> K nthGet (Map<K,K> m, K k, int n);

它应该做的是获取一个映射 m,并返回该映射中从 k 开始的第 n 个键。因此,如果 n 为 3,则返回 m.get(m.get(m.get(k)))。

我有一种感觉,我必须使用对 nthGet 的递归调用来从 n 返回键的最终值,但我不太确定。

最佳答案

你可以简单地循环n次:

for (int i = 0; i < n; i++) {
    k = m.get(k);
}
return k;

如果映射中不存在某个值作为键,则可能返回 null。

关于java - 第 n 次调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12762165/

相关文章:

java - 用户同时在 JAVA 中执行列表 UI 排序

java - 在java语言中,如何将纳秒值(例如1568694302232954486和1568703521360049938)转换为Java Date对象?

python - 根据键值过滤Python字典

python - 如何连接字典(值到相同键和新键的值)?

java - 从 HashMap 中检索位置

java - 如何关闭 Ant 控制台中 hbm2ddl 的大部分输出?

Java 从菜单更改 View 不起作用

c++ - 了解以相反顺序打印出数组的递归解决方案

c++ - 为什么递归返回调用会在没有显式返回语句的情况下跳出堆栈?

java - 无限递归错误