如何在 Java 中对 HashMap 进行排序?

ctooley17

我正在使用一种HashMap<String,Integer>定时投票系统。其中字符串是对象的名称,整数是该对象拥有的投票数量。我想要做的是将整数降序排序,如果他们是平局,我想选择以前没有赢得投票的人(如果他们中的任何一个赢得了选票)

我尝试使用 a TreeMap,但它似乎没有做我想要的,因为它根据键的值进行排序,而我需要对值进行排序。也不起作用,因为有时两个对象可能都有相同的投票数。

阿拉斯泰尔 B.

为了能够确定平局的结果,您需要的不仅仅是一个整数。一种解决方案可能是创建一个自定义对象,该对象包含额外信息并实现可比性(类似于 Walter 所说的)。

从我从你的帖子中可以看出,当有相同的投票时,你希望结果是最近没有选择的选项,因为其他绑定选项。如果是这种情况,那么下面使用 Date 作为辅助信息的解决方案应该可以工作。

import java.util.Date;

public class VoteOption implements Comparable<VoteOption>{

    private String name;
    private Integer votes;
    private Date lastVote;

    /** Constructor */
    public VoteOption(String name){
        this.name = name;
        this.lastVote = new Date();
        this.votes = 0;
    }

    /** gets the name of this option */
    public String name(){
        return this.name;
    }

    /** gets the number of votes this option currently has */
    public int votes(){
        return this.votes;
    }

    /** Call this method if the vote passed with this option.
     * It will update the lastVote date so that this will become the
     * last option to be picked if there is a tie in the next vote. */
    public void votePassed(){
        this.lastVote = new Date();
    }

    /** resets the vote count back to 0 */
    public void resetVoteCount(){
        this.votes = 0;
    }

    /** Adds 1 vote to the vote count */
    public void vote(){
        this.votes ++;
    }

    @Override
    public int compareTo(VoteOption otherOption){
        int compareVotes = this.votes.compareTo(otherOption.votes);
        if(compareVotes!=0){
            return compareVotes;
        } else {
            //handle vote ties
            int compareDates = this.lastVote.compareTo(otherOption.lastVote);
            return compareDates;
        }
    }
}

要对这些选项的列表进行排序,您应该调用

Collections.sort(list);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在HashMap中对值进行排序

来自分类Dev

如何在Android中对HashMap <String,ArrayList>进行排序?

来自分类常见问题

如何在Java中对ArrayList进行排序

来自分类Dev

如何在JAVA中对JSONArray进行排序

来自分类Dev

如何在Java中对Arraylist进行排序

来自分类Dev

如何在Java中对书籍进行排序

来自分类Dev

在 Java 中对 HashMap <Integer, List<String>> 进行排序

来自分类Dev

如何在Java中对对象数组进行排序?

来自分类Dev

如何在Java中对自定义ArrayList进行排序?

来自分类Dev

如何在Java中对数组进行排序并跟踪索引

来自分类Dev

如何在Java中对对象数组进行排序

来自分类Dev

如何在Java列表中对最早的时间戳进行排序?

来自分类Dev

如何在Java中对数组类型列表进行排序?

来自分类Dev

如何在 Java 中对颜色数组进行排序

来自分类Dev

如何在java中对arraylist的ArrayList进行排序?

来自分类Dev

如何在Kotlin中按其值对HashMap <String,Int>顺序进行排序?

来自分类Dev

如何在Java中制作嵌套的HashMap

来自分类Dev

如何在Java中制作嵌套的HashMap

来自分类Dev

如何在Java中对arraylist进行反向排序?(仅使用选择排序)

来自分类Dev

Android在arraylist中对Hashmap进行排序

来自分类Dev

如何在Java 8中使用Java 7 HashMap?

来自分类Dev

如何在java中的hashmap中获取数组的大小

来自分类Dev

如何按升序对HashMap进行排序

来自分类Dev

如何按升序对HashMap进行排序

来自分类Dev

如何从Java Hashmap中求和

来自分类Dev

如何在Java中对字符串数组中的日期进行排序?

来自分类Dev

如何在Java中复制HashMap(不是浅表复制)

来自分类Dev

内部HashMap工作:如何在Java中实现hashCode

来自分类Dev

内部HashMap工作:如何在Java中实现hashCode

Related 相关文章

  1. 1

    如何在HashMap中对值进行排序

  2. 2

    如何在Android中对HashMap <String,ArrayList>进行排序?

  3. 3

    如何在Java中对ArrayList进行排序

  4. 4

    如何在JAVA中对JSONArray进行排序

  5. 5

    如何在Java中对Arraylist进行排序

  6. 6

    如何在Java中对书籍进行排序

  7. 7

    在 Java 中对 HashMap <Integer, List<String>> 进行排序

  8. 8

    如何在Java中对对象数组进行排序?

  9. 9

    如何在Java中对自定义ArrayList进行排序?

  10. 10

    如何在Java中对数组进行排序并跟踪索引

  11. 11

    如何在Java中对对象数组进行排序

  12. 12

    如何在Java列表中对最早的时间戳进行排序?

  13. 13

    如何在Java中对数组类型列表进行排序?

  14. 14

    如何在 Java 中对颜色数组进行排序

  15. 15

    如何在java中对arraylist的ArrayList进行排序?

  16. 16

    如何在Kotlin中按其值对HashMap <String,Int>顺序进行排序?

  17. 17

    如何在Java中制作嵌套的HashMap

  18. 18

    如何在Java中制作嵌套的HashMap

  19. 19

    如何在Java中对arraylist进行反向排序?(仅使用选择排序)

  20. 20

    Android在arraylist中对Hashmap进行排序

  21. 21

    如何在Java 8中使用Java 7 HashMap?

  22. 22

    如何在java中的hashmap中获取数组的大小

  23. 23

    如何按升序对HashMap进行排序

  24. 24

    如何按升序对HashMap进行排序

  25. 25

    如何从Java Hashmap中求和

  26. 26

    如何在Java中对字符串数组中的日期进行排序?

  27. 27

    如何在Java中复制HashMap(不是浅表复制)

  28. 28

    内部HashMap工作:如何在Java中实现hashCode

  29. 29

    内部HashMap工作:如何在Java中实现hashCode

热门标签

归档