我想知道如何将输出存储在数组中,然后对其值进行排序。
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秒)
答案 0 :(得分:1)
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 强>
答案 1 :(得分: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()
答案 2 :(得分:0)
使用Arrays.sort(array); or Collections.sort(list);
即使您可以在自定义排序元素中传递自定义Comparator<? super T>
。