-1

所以我有一个循环,它将根据匹配的单词数比较两行代码,每个循环的输出是匹配单词数的百分比。我需要存储所有百分比和相应的响应,以便在比较所有行时打印出相应响应的最高百分比。

到目前为止,我已经尝试过不适用于字符串和双精度数的多维数组,然后我继续使用无法正常工作的哈希图。

解决这个问题的首选方法是什么,如果可能的话,你能举个例子吗?

4

2 回答 2

2

如果我理解正确:

  • 创建一个包含 2 个字段的对象:百分比(int/float)和响应(字符串)
  • 为每个结果创建该对象的新实例并将其存储在java.util.ArrayList
  • 使用Collections.sort并让你的对象实现 Comparable (你可以简单地比较我猜的百分比)
于 2013-06-06T20:10:21.447 回答
0

使用TreeMap. 这里假设您的百分比是double

final TreeMap<Double, String> map = new TreeMap<>();

for (final String lineOfCode: allLinesOfCode())
    map.put(calculatePercentage(lineOfCode), lineOfCode);

然后,反向迭代(这里的关键是对 的调用.descendingMap())以便从最高到最低获得:

for (final Map.Entry<> entry: map.descendingMap().entrySet())
    // percentage in entry.getKey(), line in entry.getValue()

如果您只需要最后一个条目(最高百分比):

final Map.Entry<> entry = map.lastEntry();
// same as in interation for percentage and line

(注:为 Java 7 编码)

于 2013-06-06T20:12:47.493 回答