首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >去HashMap还是不去HashMap?

去HashMap还是不去HashMap?
EN

Stack Overflow用户
提问于 2014-02-21 10:19:27
回答 2查看 218关注 0票数 1

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

由此,我试图让id 283的设备按照顺序沿坐标移动。有人建议我使用HashMap。因此,我的计划是为Route_A.txt的坐标创建一个Route_A.txt,其中一个列用于Latitude,另一个列用于Longitude。由此,我将创建另一个HashMap,它将包含包含坐标的device_id和HashMap,device_id将遍历HashMap的每一步。

这是可以做到的,还是我完全看错了?如果有人有任何建议,他们会非常感激的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-21 10:23:19

不要将坐标存储在HashMap中。很难用键(纬度?)存储多个坐标。是一样的。例如,一个简单的Map<Integer, Integer>将只保存一个纬度的经度值,这将阻止您的路由在同一条经线上有多个目的地。

我宁愿使用:

代码语言:javascript
复制
List<Coord>

Coord是你的lat/long对。List将保持秩序,而普通的HashMap则不会。

请注意,我有意将lat/long对封装为特定对象。您可以将它存储为整数的元组,但我更希望有一个特定的对象来强制输入,允许添加功能等等。正如其他地方所指出的,Java是一种面向对象语言,您不应该回避创建类来表示这些概念(创建类似于Map<String,List<Integer,Integer>>的东西时就应该这样做)

票数 2
EN

Stack Overflow用户

发布于 2014-02-21 10:25:00

HashMap是一种数据结构,它允许您将值与键相关联,并允许(给定一个键)在恒定时间内返回值(例如,不需要像对列表或数组那样循环)。

因此,如果您的usecase需要这样的功能,请使用此结构。将设备存储在地图中,其中设备ID是关键,听起来是个好主意。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21931488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档