繁体   English   中英

到HashMap还是不到HashMap?

[英]To HashMap or not to HashMap?

我正在尝试创建一些将从文本文件中读取信息的代码。 例如, Bus_Routes.txt将包含Route_A.txt 283,284并从该文件中打开Route_A.txt ,它包含2列,其中列出了坐标的Latitude Longitude 我写的很好。

由此,我试图获取ID为283的设备沿坐标依次移动。 建议我使用HashMap。 所以我的计划是为Route_A.txt的坐标创建一个HashMap,有一列用于Latitude ,另一列用于Longitude 由此,我将创建另一个HashMap,其中将包含device_id和HashMap包含坐标,并且device_id将遍历HashMap的每个步骤。

可以这样做还是我完全在错误的区域中寻找? 如果有人有任何建议,将不胜感激

不要将坐标存储在HashMap 在键(纬度?)相同的情况下,很难存储多个坐标。 例如,简单的Map<Integer, Integer>只能保存一个纬度的经度值,这将阻止您的路线沿同一经度线具有多个目的地。

我宁愿使用:

List<Coord>

Coord是您的经/ Coord对。 List将保留顺序,而普通的HashMap不会。

请注意,我故意将经/纬对封装为特定对象。 您可以将其存储为整数元组,但是我希望使用一个特定的对象来执行类型输入,允许添加功能等。如其他地方所述,Java是一种OO语言,因此您不应避开创建代表这些概念的类(当您创建类似Map<String,List<Integer,Integer>>东西时,您应该执行此操作

HashMap是一种数据结构,可让您将值与键相关联,并允许在给定键的情况下,以恒定的时间取回该值(无需像使用列表或数组那样循环),例)。

因此,如果您的用例需要这种功能,请使用此结构。 将设备存储在以设备ID为键的地图中,听起来不错。

另一方面,如果您希望数据结构包含字段(例如纬度,经度),则创建一个类。 Java是一种OO语言。 您应该创建自己的类。 而且,如果要使用坐标列表,则应使用List<Coordinate>而不是HashMap。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM