最好的方法是什么?
我有一个应用程序,每隔10秒获取两个值(当用户触摸屏幕时)。从这里我得到两个值,用户触摸的球体对象的纬度和经度
现在我想将thoose值与文件中的值进行比较,使用位置的实际纬度经度,然后比较thoose值和用户的距离。
我的文件将在每个索引中使用两个值和一个键(位置)构建。
执行此操作的最佳方法是,使用bufferedInputStreamReader读取整个文件,并将thoose存储在
中 HashMap<String, List<Float>>
或者我会更好地使用像SqlLite这样的数据库结构?
因为我在移动平台上这样做是非常重要的,这也是我提出这个问题的主要原因。
答案 0 :(得分:1)
根据您需要比较的数据大小,您可以每次针对数据库查找(较慢)或在内存中进行二进制搜索(更快)。
如果存储在HashMap中(对于内存方法),则需要对二进制搜索进行排序和实现以获得最大速度。否则,您将在整个值集合中线性搜索(迭代)(您可能会接受)。
我会说,如果你有几千个条目,那么就在内存中进行,如果你有更多条目,那么请按照数据库路径进行。