2012-09-06 62 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>