Java找到TreeMap的X%

时间:2014-12-24 01:39:34

标签: java

我有一个TreeMap,其中包含双键和字符串值,例如:

TreeMap<Double,String> tm = new TreeMap<Double,String>();
tm.put(1,"worst");
tm.put(2,"middle");
tm.put(3,"best");

我需要一种能够获得树图的X%的方法,例如在这种情况下,如果我说:

得到33%然后&#34;最好&#34;将被退回,如果我说66%然后&#34;最好&#34;中间将被退回。

有没有简单的方法可以做到这一点?如何在地图中向后迭代?

1 个答案:

答案 0 :(得分:-1)

你可以尝试这样的事情:

// ratio - 0.0 - 1.0
List<String> getRatio(Map<Double,String> map, double ratio)
{

    List<String> result = new ArrayList<String>();
    for (Entry<Double, String> e: map.entrySet()) {
        double newRatio = (double) result.size() / map.size();
        if (newRatio >= ratio)
            break;
        result.add(e.getValue());
    }
    return result;
}