这可能听起来非常基本,但我真的想知道什么是标准。 为了收集GPS线,并保存Lats和Long(最好)一个阵列,什么算法带来最佳性能? 我的方式有什么好处?任何其他(更好)的建议? 感谢
public void onLocationChanged(Location loc) {
// new I and J, in increment
givemeIandJ()
Array[i][j]=(loc.getLatitude());
Array[i][j]=(loc.getLongitude());
答案 0 :(得分:0)
通过节省内存的最佳性能是将纬度和经度存储在不同的数组中:
int[] longitudes = new int[maxSize];
int[] latitudes = new int[maxSize];
longitudes[i] = loc.getLongitude() * 1E7; / 1E7 = 1000000: converts to integer
latitudes[i] = loc.getLatitdue() * 1E7;
其中maxSize
可能是写入存储之前的最大缓冲区大小。
java中的二维数组需要更多的空间(比在C中),因为2d数组是int []类型的1d对象数组,每个(1-d)条目丢失20个字节。
如果需要,您甚至可以将lat / lon存储在一个int []数组中:
int[] latLongs= new int[2 * maxSize];
latLongs[2*i] = (int) (loc.getLongitude() * 1E7);
latLongs[2*i + 1] = (int) (loc.getLatitude() * 1E7);
如果你想省略faktor 1E7,只需使用double [](或float [])数组。