java - 对数组中的项目进行排序

标签 java android arrays

您好,我正在尝试根据最短距离在 map 上绘制多边形。

我创建了名为distancearray的数组列表。

但我想创建一个名为shortdistance的新数组列表,该数组列表必须在distancearray中具有相同的值,但必须根据距离以升序缩短。

谁能帮我创建这个短距离数组。谢谢。

String array[][]=dbhand.collecting(getIntent().getExtras().getString("temple_type"), Integer.parseInt(getIntent().getExtras().getString("notemples")));

for(int i=0;i<array.length;i++){                
    displaymarkers(Double.parseDouble(array[i][0]), Double.parseDouble(array[i][1]), array[i][2]);
}

for(int i=0;i<array.length;i++){
    double Distance = calculate_distance(SEATTLE_LAT, SEATTLE_LNG, Double.parseDouble(array[i][0]), Double.parseDouble(array[i][1]));

    double[][] distancearray = new double[array.length][3];

    distancearray[i][0]=Double.parseDouble(array[i][0]);
    distancearray[i][1]=Double.parseDouble(array[i][1]);
    distancearray[i][2]=Distance;

}

double [][] shortdistance = new double [array.length][3];

绘制多边形函数

private void drawpolygon(String array[][]) {

    int lengh = array.length;
    if(lengh==2){
        mMap.addPolygon(new PolygonOptions()
        //.add(new LatLng(9.662502, 80.010239), new LatLng(9.670931, 80.013201), new LatLng(9.663216, 80.01333))
        .add(new LatLng(9.6632139, 80.0133258))
        .add(new LatLng(Double.parseDouble(array[0][0]), Double.parseDouble(array[0][1])))
        .add(new LatLng(Double.parseDouble(array[1][0]), Double.parseDouble(array[1][1])))
       .fillColor(Color.GRAY));
    }

最佳答案

只需对数组调用 Arrays.sort() 并指定一个查看距离的比较器即可。

关于java - 对数组中的项目进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22020123/

相关文章:

java - GWT/GXT 国际化问题

java - JTextField文本显示

java - 从处理程序调用时,asynctask 未获取 arraylist

android - ChatKit 库 : incoming image wrong margins

java - 这怎么违法

Android:清除动画后如何重新启动动画

android - 在android studio中打开现有项目的问题

c - 为什么 getchar() 没有收到任何输入?

javascript - 当从 jquery 的单击事件中的每个循环创建到其外部的数组时,它显示空白数组

arrays - Python 2.7 : looping over 1D fibers in a multidimensional Numpy array