java - 实现矩阵的最佳方式(地铁站/地铁线路)

标签 java matrix implementation

我正在用 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/

相关文章:

matrix - 在未排序矩阵中搜索的时间复杂度是线性的?

python-3.x - 更改 Pytorch 3D 张量内的值

methods - 尝试实现方法时如何修复 "wrong number of type arguments"?

r - 将矩阵划分为 R 中的列表时出现奇怪的输出

java - Oracle 的 jvm 中的 notify() 实现

c++ - 通过链接另一个目标文件来劫持函数的实现

java - 有什么方法可以指定扩展多个类中任意一个的 java 泛型类型变量吗?

java - HashMap 对象键

java - 这段代码是 O(n) 还是 O(logn)?

java - 简单的 Spring MVC+安全设置