-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.0123
0.0
ビルド成功 (合計時間: 0 秒)

4

3 に答える 3

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]

デモ

于 2012-09-06T17:40:30.180 に答える
0

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

Comparator<? super T>カスタム順序要素の両方でカスタムを渡すこともできます。

于 2012-09-06T17:44:03.237 に答える
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.Comparatorまたはjava.lang.Comparableインターフェイスを使用してそれらを並べ替えます.....または、配列に固執したい場合は...次に実行しますArrays.sort()

于 2012-09-06T17:40:49.367 に答える