排序并与方法进行比较

时间:2016-06-24 19:01:22

标签: java

我正在研究一个程序,当Frequency类可以将单词插入到链表中时。插入新单词时,会将单词添加到列表中。如果列表中存在该单词,我们只需递增该单词的“count”值。单词的频率发生了变化,我必须将单词移动到链表中的正确位置。如果两个单词的频率相同,则按字母顺序排序。

我的方法计算单词并放置正确的位置但是当单词具有相同的频率时,它不按字母顺序排序。如果单词具有相同的频率,有人可以按字母顺序排序吗?

public class Node implements Comparable<Node> {

    private E key;

    private int count;

    public int compareTo(Node o) {
        // words have same frequency, they are sorted alphabetically
        if (this.count == o.count) {
            return o.key.compareTo(this.key);
        } else {
            // by number of word
            if (this.count > o.count) {
                return 1;
            }
            else {
                return -1;
            }
        }

    }
}

我的回答

(alice,4),(bob,3),(cathy,2),(ethan,1),(frank,1),(david,1),

但它应该是

(alice,4),(bob,3),(cathy,2),(david,1),(ethan,1),(frank,1),

1 个答案:

答案 0 :(得分:1)

@Compass在评论中更正了。而不是

return o.key.compareTo(this.key);

你应该使用

return this.key.compareTo(o.key);