在java中创建评级系统

时间:2013-04-03 16:55:54

标签: java statistics rating

我正在尝试对数字列表进行评分,例如。 [297,720,840,903,1110,1170],分数为1到10,其中10为最低,1为最高数。

所以list.get(0)将是9/10或10/10而list.get(2)将是5或6中的10。

我怎样才能在java中做到这一点?

1 个答案:

答案 0 :(得分:3)

我建议像:note = 10 - 9 * (value - minValue) / (maxValue - minValue)

    List<Integer> list = Arrays.asList(297, 720, 840, 903, 1110, 1170);
    Collections.sort(list);
    Integer min = list.get(0);
    Integer max = list.get(list.size() - 1);
    List<Integer> notes = new ArrayList<Integer>();
    for (Integer i : list) {
        notes.add(10 - (int) 9.0 * (i - min) / (max - min));
    }
    System.out.println(notes);

给出了:

[10, 6, 5, 4, 2, 1]