双向容器

来源:互联网 发布:上古世纪捏脸数据精灵 编辑:程序博客网 时间:2024/05/01 19:22

  有时候,解决问题的方法只是简单的换一下思维。

  曾经有段时间我特别喜欢id号这个东西,那个时候的程序里可以看到各种各样“有明确意义”的索引,指针、字符串最常见,现在翻番那个时候的东西,觉得很幼稚很天真丷丷,闲来没事做一些优化,碰到了一个双向查找的问题,有时候我需要使用key找value,有时候又需要通过value找特定的key,其实很简单,真有这种需求的话做两个哈希表互相颠倒key-value就可以了,但是因为是对现有代码的修改,考虑到设计思想、可读性的问题(坦白的说我不考虑最小改动的诱惑),我不没有采用这种机制。

  在若干想法走到尽头几乎绝望的时候,我忽然回了一下头,发现其实曙光里我很近。我一直在如何让key-value互换上找方法,却忘了自己的根本需求,其实自己的需求只是a可以找到不,b可以找到a,解决的方法很简单。

  通过哈希表关联a到b,也就是说a可以找到b,在b里保持一个a的指针,问题解决。

  有时候,开发的没有必要的时间浪费是因为自己追求了一个比自己的需求大很多的目标。分清自己的原始需求和润色需求很重要。当修改方案的时候,记得避免受到原有方案的定式影响,新的方案应该建立在对原始需求的满足上,而不是对先前方案的完善或更改。

原创粉丝点击