有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java地图vs??用于存储姓名和分数

我使用hashmap来存储数据。 问题是,我刚刚注意到hashmap不能有多个相同的键。 我还应该使用什么来存储数据,这些数据如下所示:

  • 名称1100.0
  • 姓名2 99.8
  • 名称3 121.5

我试图做的另一件事是显示某个人的数据,当我调用该键时。 那么,有没有办法存储与一个键相关的多个值?或者我应该使用其他类型的存储


共 (3) 个答案

  1. # 1 楼答案

    要在Matthew Coxes answer上进行扩展,可以扩展Hashtable类,使其自动为您管理列表,并使您看起来有多个键

  2. # 2 楼答案

    我宁愿使用我自己的数据模型并将其存储在列表中,如果你想快速访问,比如

    public class Player {
        private String name;
        private List<Float> scores;
    }
    

    优点:

    • 你可以很容易地看到,结构想要表达什么
    • 您可以轻松地扩展它(例如,为玩家添加别名,或计算玩家1的avarage scor)
  3. # 3 楼答案

    如果将值存储在另一个数据结构中,例如每个键索引处的链表或树中,hashmap可能会有重复的键。然后你只需要决定如何处理碰撞

    编辑:

    哈希映射

    ["firstKey"] => LinkedList of (3,4,5)
    ["secondKey"] => null
    ["thirdKey"] => LinkedList of (3)