关于java:将输出数组存储在不同的数组中并对数组值进行排序

Store output array in different array and sort the array values

我想知道如何将输出存储在数组中,然后对其值进行排序。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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<BR/>3:0.5
4:0.6
5:0.0123
0<BR/>生成成功(总时间:0秒)


使用Arrays#sort()

1
Arrays.sort(points);

请注意,此方法对数组进行了就地排序,这意味着它将修改作为参数传递的数组。

如果要复制数组,可以使用Arrays#copyOf,然后对副本进行排序:

1
2
3
4
5
6
7
8
9
10
11
12
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]

演示。


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

甚至可以为自定义排序元素同时传递自定义Comparator


1
2
3
4
5
6
7
8
9
10
11
12
13
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()