[英]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.