2012-09-06 79 views
-1

我想知道如何將輸出存儲在數組中,然後對其值進行排序。將輸出數組存儲在不同的數組中並排序數組值

public static void main(String[] args) { 

    int i; 
    float[] npoints = new float[10]; 
    float[] points = new float[10]; 
    points[0]=(float) 0.3; 
    points[1]=(float) 0.2; 
    points[2]=(float) 0.4; 
    points[3]=(float) 0.5; 
    points[4]=(float) 0.6; 
    points[5]=(float) 0.0123; 

    for(i=0;i<6;i++) 
    { 
     if(points[i]!=0.0) 
     { 
      npoints[i]=points[i]; 
      System.out.println(i+":"+points[i]); 
     } 

    } 
    System.out.println(npoints[i]); 
} 

}

輸出:

0:0.3
1:0.2
2:0.4
3:0.5
4:0.6
5:0. 0.0
BUILD SUCCESSFUL(總時間:0秒)

回答

1

使用Arrays#sort()

Arrays.sort(points); 

注意,此方法排序數組到位,這意味着它會修改你作爲參數傳遞的數組。

如果你想在陣列複製,您可以使用Arrays#copyOf,然後排序副本:

float[] points = new float[10]; 
points[0]=(float) 0.3; 
points[1]=(float) 0.2; 
points[2]=(float) 0.4; 
points[3]=(float) 0.5; 
points[4]=(float) 0.6; 
points[5]=(float) 0.0123; 

float[] npoints = Arrays.copyOf(points, points.length); 
Arrays.sort(npoints); 
System.out.println(Arrays.toString(npoints)); 
// [0.0, 0.0, 0.0, 0.0, 0.0123, 0.2, 0.3, 0.4, 0.5, 0.6] 

DEMO

+0

如何在迭代後將輸出存儲在不同的數組中。 – user1277399

+0

@ user1277399:我添加了一個演示例證。您也可以使用'copyOf'而不是for循環來複制數組。 –

0
ArrayList<Float> arr = new ArrayList<Float>(); 

for(i=0;i<6;i++) 
    { 
     if(points[i]!=0.0) 
     { 
      npoints[i]=points[i]; 
      System.out.println(i+":"+points[i]); 

      arr.add(npoints[i]); 
     } 

    } 

現在使用java.util.Comparatorjava.lang.Comparable接口排序他們 ..... 或者如果你想堅持陣......然後做Arrays.sort()

0

使用Arrays.sort(array); or Collections.sort(list);

即使你可以在自定義排序元素中傳遞自定義Comparator<? super T>