我正在用 Java 开发一个小型 Web 应用程序,给定伦敦地理位置,它会找到最近的地铁站及其各自的线路。我正在尝试找到表示地铁站 - 地铁线关系的最佳方式。如您所知,一个地铁站可以是多条线路的一部分。我现在正在做的是我的数据库中有一个表,其中的关系表示为矩阵。像这样的事情:
stationId | blueLine | blackLine | pinkLine | purpleLine | ... | greenLine
25 0 1 1 0 1
其中 0 和 1 是 boolean 值,表示该车站是该地铁线路的一部分(不可为空,默认为 0)。当然,这些数据不会经常改变(他们不会经常 build 新的车站或线路),而且我认为每次需要这些数据(很多)时都调用数据库有点矫枉过正。我知道一个解决方案可能是缓存它,但我一直在考虑存储此类数据的 Java 方法是否更适合我:也许是一个地铁对象的常量列表,某种包含所有地铁站数据的静态类,使用 bean 类并使用依赖注入(inject)来注入(inject)它...
我想听听您的意见,您认为实现此功能的最佳方式是什么?
最佳答案
如果我真的必须将所有对象保存在内存中,我会为我需要的每种查询创建一个映射:
一个
HashMap<Line, List<Station>>
还有一个
HashMap <Station, List<Line>>
例如。这样,您的查询将会相当快,并且由于映射存储对象的指针,因此不会占用太多空间。
最后,您可以创建一个单例类来充当“数据访问层”,提供一组固定的查询方法来获取您所需要的内容。
关于java - 实现矩阵的最佳方式(地铁站/地铁线路),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15815803/