所以我似乎遇到了一个小问题。我试图用字符串存储一些 double (就像它们的名称),然后能够按降序对它们进行排序。
我还想以某种方式存储它们,比如 HashMap 、数组列表、列表等......我不确定哪个是最好的。
有点像 让我们假设它们以某种方式存储,比如 HashMap 、列表等......
Bob: 6.0
Mary: 5.4
Bill: 6.3
Ann: 5.0
Jim: 6.0
然后将它们输出为:
Bill: 6.3
Bob: 6.0 //Notice, it must be able to support duplicates.
Jim: 6.0
Mary: 5.4
Ann: 5.0
我希望这对其他人有意义,如果不让我知道,我可以尝试解决它。
附注我寻找了类似的其他线程,但找不到适合我需要的线程。
编辑:我似乎找到了一种以某种方式起作用的方法...如果您有兴趣查看,我在这里有一个粘贴链接:http://pastebin.com/qWJbD5MZ
现在,代码是基于 Bukkit API 构建的,因此对其他人来说可能没有多大用处。
最佳答案
最简单的方法是创建一个包装类:
class Person {
String name;
double score;
//constructor, getters etc.
}
然后将人员放入列表中:
List<Person> list = Arrays.asList(new Person("Bob", 6),
new Person("Mary", 5.4),
new Person("Bill", 6.3),
new Person("Ann", 5.0),
new Person("Jim", 6.0));
最后使用比较分数的自定义比较器对它们进行排序:
Collections.sort(list, comparator);
比较器可能如下所示:
Collections.sort(list, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
//sort by score
if (o1.score != o2.score)
return Double.compare(o1.score, o2.score);
//if same score, sort by name
return o1.name.compareTo(o2.name);
}
});
关于java - 使用字符串存储 double - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18119123/