在java中实现双射函数

时间:2015-06-24 19:46:10

标签: java dictionary hashmap

我想实现一个双射函数。 从维基百科中,双射(或双射函数或一对一对应)是两个集合的元素之间的函数,其中一个集合中的每个元素与另一个集合的正好一个元素配对,而另一个集合的每个元素与另一个集合的每个元素配对与第一组中恰好一个元素配对。 Java中是否有任何结构可以做到这一点?如果没有,我怎么能有效地处理它?<​​/ p>

2 个答案:

答案 0 :(得分:3)

你应该尝试BiMap形成番石榴。

答案 1 :(得分:0)

来自维基百科:

对于X和Y之间的配对(其中Y不必与X不同)作为双射,必须有四个属性:

  • X的每个元素必须与Y
  • 中的至少一个元素配对
  • X的任何元素都不能与Y
  • 的多个元素配对
  • Y的每个元素必须与X
  • 中的至少一个元素配对
  • 且Y的任何元素都不能与X的多个元素配对。

基本上,它是不同集合的两个元素之间的标准函数,它遵循4条规则。

你需要做的是编写一个接受两个参数的普通函数,一个来自第一个集合,另一个来自第二个集合。

然后,您需要将该函数应用于正确的元素对。这可以订购第一个集合和第二个集合。

所以解决方案很简单,您必须使用List,或者如果您更喜欢使用Set,则必须使用LinkedHashSet,因为预测了迭代顺序。