我有一个整数值列表(正数和负数)。我需要计算每个值的百分比。 Java中是否有任何API可以实现这一目标?
示例1 -
10, 40, 60, -15, -25, 30, -10, -50, 120
-50 (lowest value) - 0%
-25 - ?
-15 - ?
-10 - ?
10 - ?
120 (highest value) - 100%
示例2 -
90,45,13,-89,-95,-150,200,250,67
-150(最低值) - 0% -95 - ? -89 - ? 13 - ? 250(最高值) - 100%
答案 0 :(得分:1)
您不需要API,只需将数字存储在数组中,对其进行排序,然后按如下方式获取百分比:
int []array = new int[n];
//insert numbers in the list
Arrays.sort();
假设您需要找到给定数字'x'
的百分比,然后执行此操作:
int index = ArrayUtils.indexOf(array, x);
int percentage = ((double)(index + 1)/n)*100
答案 1 :(得分:0)
不需要API /外部类。你可以制作一个方法。这里有一些基本的伪代码esk java来帮助你入门
public int average (arraylist a or int[] a){
int r = 0;
for (int i = 0; i< a.length or a.size(); i++){
r+= a[i] or r+= a.get(i);
}
r = (r/a.length) or (r/a.size());
return r;
}
答案 2 :(得分:0)
我不确定您是否要求在排序或值之后根据索引进行规范化。但我认为基于价值更有意义。例如,如果您的数组为0, 1, 10
,则最终百分比为0->0%, 1->10%, 10->100%
为此,您基本上会进行规范化。
我不记得确切的语法,但如果任何语法错误,请更正它。
int arr[] = {10, 40, 60, -15, -25, 30, -10, -50};
List b = Arrays.asList(ArrayUtils.toObject(arr));
int mn = Collections.min(b);
int mx = Collections.max(b);
int perc_arr = new int[arr.length];
for(int i = 0; i < arr.length; i++)
perc_arr[i] = (arr[i]-mn)/(mx-mn)*100;