java - 使用字符串存储 double - Java

标签 java list sorting bukkit

所以我似乎遇到了一个小问题。我试图用字符串存储一些 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/

相关文章:

java - 诊断 servlet 的 404 错误问题(Eclipse 和 Glassfish 3)

list - 榆树排序和[可比]

java - 方法签名上的断点与方法第一行上的断点之间的区别

java - "Cannot Find Symbol"编译错误

java - Java程序需要构造函数吗

list - Lisp 是如何动态分配符号的? Lisp 符号的底层数据结构/机制?

java - 如何检索并将检索到的巨大字符串数据设置为 swing 中的 JTextArea?

python - 有没有更简单的方法来从 python 中的列表中设置多个变量?

algorithm - 中值排序的真实名称是什么和/或我在哪里可以找到更多关于它的 Material

Python异常文件排序