Closed. This question is opinion-based。它当前不接受答案。
                            
                        
                    
                
            
                    
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
                        
                        2年前关闭。
                    
                
        

我正在用Java开发一个小型Web应用程序,该应用程序根据伦敦的地理位置,可以找到最近的地铁站及其相应的线路。我正在尝试找到代表MetroStation-metroLines关系的最佳方法。如您所知,一个地铁站可能是多条线路的一部分。我现在正在做的是在数据库中有一个表,其中的关系表示为矩阵。像这样:

stationId | blueLine | blackLine | pinkLine | purpleLine | ... | greenLine
    25          0          1          1           0                  1


其中0和1是布尔值,表示该站是该地铁线路的一部分(不可为空,默认为0)。当然,这些数据不会经常更改(它们不会经常建立新的站点或线路),并且我认为每次需要此数据(很多)时都调用数据库是一种过大的选择。我知道一种解决方案可能是对其进行缓存,但是我一直在考虑使用Java存储此类数据的方法是否对我更好:也许是恒定的Metro对象列表,某种包含所有Metro Station数据的静态类,使用bean类并使用依赖项注入将其注入...

我希望您的意见,您认为实现此功能的最佳方法是什么?

最佳答案

如果确实需要将所有对象都保存在内存中,则可以为我需要的每种查询创建一个Map:



HashMap<Line, List<Station>>


还有一个

HashMap <Station, List<Line>>


例如。这样,您的查询将非常快速,并且由于Maps存储了对象的指针,因此不会占用太多空间。

最后,您可以创建一个单例类,充当“数据访问层”,提供一组固定的查询方法以获取所需的内容。

关于java - 实现矩阵的最佳方法(地铁站/地铁线),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15815803/

10-11 23:15