从非常大的对象数组列表中查找所需数据
Posted
技术标签:
【中文标题】从非常大的对象数组列表中查找所需数据【英文标题】:Finding Required Data From A Very Large ArrayList Of Objects 【发布时间】:2020-09-19 06:07:58 【问题描述】:一个 Arraylist 包含 190,000 个结构对象
srno: 51,
health_facility_name: "keeraipatti",
address: "Keeraipatti building",
street: "keeraipatti",
landmark: "keeraipatti",
locality: "keeraipatti",
pincode: 636903,
landline_number: "NA",
latitude: 12.005075,
longitude: 78.533949,
altitude: 394.6894,
facility_type: "SubCentre",
state_name: "Tamil Nadu",
district_name: "Dharmapuri",
taluka_name: "Harur",
block_name: "Harur"
我使用 html Gelocation API 获取用户的当前位置,并通过 javascript 将用户的纬度和经度发送到端点(window.location.href='......')
@GetMapping("/nearHospitals/lattitude/longitude")
public String nearHospitalsHandler(@PathVariable("lattitude")double lattitude,
@PathVariable("longitude") double longitude)
//call service method to get List of 20 Hospital Objects closest to the user's
//location and put it inside the Modal for the view to render
//what should be the logic here
return "nearHospitalsView";
现在我有一个方法可以计算医院(ArrayList 中的对象)与用户当前位置之间的距离。
现在我应该如何进一步,找到最近的 20 家医院并返回列表的有效方法是什么。
【问题讨论】:
您是否已经验证过幼稚的方法 - 性能方面 - 不够? 你不使用任何数据库来存储数据吗? 查看 Dijkstra 最短路径算法及其工作原理。它可能会帮助你。 @Turing85 是的,使用常规的幼稚方法需要 2-3 分钟 @Rono 我正在使用来自 API 端点的对象 【参考方案1】:为了有效地找出最近的“x”家医院,我建议您使用自定义优先级队列。
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。以上是关于从非常大的对象数组列表中查找所需数据的主要内容,如果未能解决你的问题,请参考以下文章