当前位置: 首页 > 面试题库 >

如何优雅地交换地图中的键和值

王彭薄
2023-03-14
问题内容

我已经知道如何用辛苦的方式做到这一点,并使它起作用-遍历条目并“手动”交换。但是我想知道是否可以像许多任务一样以一种更优雅的方式解决这一问题。

我可以假设我的地图是双射的,顺便说一句:)


问题答案:

标准的API / Java运行时不提供双向映射,因此唯一的解决方案是遍历所有条目并手动交换它们。

您可以做的是创建一个包装器类,该包装器类包含两个映射,并且在put()内部进行双重处理,因此您可以快速获取两个数据视图。

[编辑]另外,由于采用了开放源代码,因此您不必包括第三方库,您只需将所需的类复制到自己的项目中即可。



 类似资料:
  • 人生太短,不能写没人会读的废话,如果你写了废话,没人会去读。所以好一点的文档是最好的。经理不会去理解这些东西,因为不好的文档会给他们错误的安全感以至于他们不敢依赖他们的程序员。如果一些人绝对坚持你真的在写没用的文档,就告诉他们“是的”,然后安静的找一份更好的工作。 没有其他事情比精确估计 把好的文档转为放松文档要求的估计 更为有效率。真相是冷酷而艰难的:文档,就像测试,会花比开发代码多几倍的时间。

  • 问题内容: 如何在Linux和Windows中正常停止Java进程? 什么时候被调用,什么时候不被调用? 终结器又如何呢? 我可以从外壳向Java进程发送某种信号吗? 我正在寻找最好的便携式解决方案。 问题答案: 在所有未强制终止VM的情况下,都会执行关机挂钩。因此,如果要发出“标准” kill(通过kill命令),则它们将执行。同样,它们将在调用后执行。 但是强行杀死(或),然后它们将不会执行。

  • 问题内容: 我写了一个线程,它花费太多时间执行,而且似乎还没有完全完成。我想优雅地停止线程。有什么帮助吗? 问题答案: 做到这一点的好方法是让一个线程保护一个Thread的变量,并在你要停止它的时候将其设置为外部变量,例如: `class MyThread extends Thread { volatile boolean finished = false; public void stopMe(

  • 让我们假设我们有这样一个用python编写的琐碎守护进程: 我们使用< code>start-stop-daemon对其进行守护,默认情况下,它会在< code> - stop上发送< code > SIGTERM (< code > TERM )信号。 假设当前执行的步骤是。此时我们正在发送信号。 发生的情况是执行立即终止。 我发现我可以使用<code>signal.signal(signal.

  • 问题内容: 我正在阅读出色的在线书籍http://nodebeginner.org/,并尝试了简单的代码 现在我不知道(而且我仍然不知道!)如何优雅地关闭node.js,所以我就去了。现在,每次我尝试运行时,都会收到以下错误消息。 因此,有两个问题: 1)如何正常关闭node.js? 2)如何修复我创建的混乱? 问题答案: 使用+ 优雅地退出节点进程 清理混乱取决于您的平台,但基本上,您需要找到运

  • 问题内容: 考虑这一行: 显然,这行是潜在的错误,属性可能是,我们将获得。因此,我们需要将其重构为以下两种选择之一: 第一种选择: 第二种选择: 第一种选择阅读时比较笨拙,但更为简洁;第二种选择的意图很明确,但很冗长。 就可读性而言,您更喜欢哪个选项? 问题答案: 我一直都在用 因为尽管阅读起来有点困难,但是它的冗长程度要小得多,而且我认为它足够易读,因此您可以很容易地习惯它