在 TreeMap、HashMap 或 LinkedHashMap 中存储具有重复键的值

2024-02-08

我目前正在开展一个项目,在该项目中我从社会保障网站检索有关姓名的数据。基本上我得到了一个数字x,以及年份y和z。我必须返回 y 到 z 每年的前 x 个名字。

所以从网站返回的数据是姓名、排名和年份。我必须将返回的每个名称输入到 TreeMap、HashMap 或 LinkedHashMap 中,但我不确定如何存储它们,因为无论我使用什么作为键,都可能存在重复项。年份不可能是关键,因为我将获得每年的前 x 个名字,所以它们都来自同一年。如果有多个年份,就会有多个排名 1 的名称,等等,因为每一年都有一个,所以这不可能是关键。而且名字本身不可能是关键,因为同一个名字可能多年来一直占据前几个名字。

我已经设法理解了这个项目的大部分复杂部分,但是这个——最简单的部分之一,我似乎无法理解!

我听说过可以使用年份之类的内容作为键并使值成为名称列表或类似内容的方法,但我不确定如何在这样的实现中添加值。我将非常感谢任何建议!

非常感谢。

编辑:请注意,我被特别告知我必须使用 TreeMap、HashMap 或 LinkedHashMap。我听说过 MultiMap,但这不是我的选择之一。


我认为使用哈希图List http://docs.oracle.com/javase/7/docs/api/java/util/List.html是你特别要求的。如何实例化此类对象的示例如下:

HashMap<Integer, List<String>> myHashMap = new HashMap<Integer, List<String>>();

请注意,我们必须使用Integer因为哈希图只与对象一起工作 https://stackoverflow.com/questions/16148575/hashmap-and-int-as-key。要为此添加值,您可以这样做:

myHashMap.get([whatever year you wanted]).add("[whatever name you want]");

然而,一看这个问题 https://stackoverflow.com/questions/18326386/java-hashmap-associative-multi-dimensional-array-can-not-create-or-add-elements表明这并不那么容易,因为您必须为所有键实例化每个列表(该问题专门处理多维哈希图,但前提是相同的)。然而,正如该问题的答案所表明的那样,这是可行的。你应该看一下它,因为我认为它会帮助你理解这一切是怎么回事,但可能适合你的代码可能看起来像(几乎直接取自链接问题的答案):

if (!myHashMap.containsKey(myYear)) {
    myHashMap.put(myYear, new List<String>());
}

Edit:如果你也不能在里面使用列表,我想你可以在里面放另一个哈希图,但我不认为这有太多实际用途,除非它只是一个任意的要求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 TreeMap、HashMap 或 LinkedHashMap 中存储具有重复键的值 的相关文章

随机推荐

  • android中ListView无法点击?

    我使用联系人同步制作了一个应用程序 我列出了以下联系信息 包括照片 姓名和电话号码 我成功地在自定义中列出了所有这些内容ListView 但我无法点击ListView 看起来像是被锁定了 无法点击 但我对另一项活动做了同样的程序 使用自定义
  • 在 LINQ 中对集合的集合进行交集

    我有一个要相交的列表列表 List
  • Hibernate JPA ManyToOne 复合键

    我正在尝试设置我的实体以允许 pks 我的数据库由两个字段组成 Dealer detail id pk user detail id pk 两者都根据相应表中的 id 进行连接 到目前为止我已经尝试过但没有成功 Embeddable pub
  • Git Pull 请求没有更改,但 git diff 显示更改

    我的分支机构有问题 介绍 我的项目有 3 个分支 Dev Main 和 Staging On Dev分支我们添加新功能 Main我们修复错误的分支Staging我们部署用于测试 当 Bug PullRequest 完成时Main分支 我们发
  • 使用 VSTS 和 Azure 时正确管理应用程序设置

    如果使用 VSTS 和 Azure 有两种不同的方法来管理应用程序设置 请记住 这只是用于持续部署的工具的示例 您可以覆盖 VSTS 中 CD 管道中的 JSON 文件 旧系统中的 Web 配置 也可以覆盖 Azure 应用程序设置 部分中
  • ElasticSearch——根据字段值提高相关性

    需要在 ElasticSearch 中找到一种方法来根据字段的特定值提高文档的相关性 具体来说 我的所有文档中有一个特殊字段 该字段值越高 包含该字段的文档就越相关 无论搜索如何 考虑以下文档结构 all enabled true prop
  • 如何在 React-Native (JavaScript) 中显示文本更多/更少

    我正在开发反应本机应用程序 在其中 我们展示了一些描述Text 可能是行数 因此 如果数据超过 3 行 如果扩展 我必须显示更多和更少
  • 如何将 (mxn) 维的 Numpy 数组展开为单个向量

    我只想知道是否有将 numpy 数组展开为单个向量的捷径 例如 将以下 Matlab 代码转换为 python Matlab方式 A 零 10 10 A unroll A 预先感谢 这是你的想法吗 编辑 正如 Patrick 指出的 将 A
  • 有没有办法显示密码执行计划?

    我看到过一个话题 了解 Neo4j Cypher Profile 关键字和执行计划 https stackoverflow com questions 17760627 understanding neo4j cypher profile
  • 是否可以在 p:columns 标签内使用 p:cellEditor?

    我有一个 primefaces 数据表 可以动态获取其列 我希望它的单元格可以使用 primefaces cellEditor 进行编辑 如图所示here http www primefaces org showcase ui datata
  • Android - 全局变量?

    我需要在我的应用程序中存储一些数据 我知道我可以这样做 class public class MyApplication extends Application private String someVariable public Stri
  • 包含动态按钮的旋转框架布局

    我有一个 Framelayout 它在运行时添加四个图像视图 并且在中心它包含主图像 用户可以使用该主图像执行不同的操作 但我面临旋转布局视图的问题 目前正在触摸旋转按钮我正在这样做 public void setRotateListene
  • 如何使用通用视图在视图中设置模型的字段?

    我有一个模型 它有一个作者ForeignKey 像这样 class Appointment models Model author models ForeignKey User 我想要author为当前登录用户创建约会时自动设置的字段 换句
  • 跨源资源共享 (CORS) 是否区分 HTTP 和 HTTPS?

    我有两个网站 https www domain only uses https com 和 www domain uses both http and https com 现在我在前者到后者的页面中发出2个ajax GET请求 一个是 ht
  • 使用 NetworkManager 上传文件不起作用

    因此 我尝试使用 Qt Network Mangager 将一个简单的文本文件上传到我正在服务的 php 脚本中 但这不起作用 我尝试了使用 QHttpMultiPart 和在请求中设置原始数据标头的示例 但没有任何效果 这是我的 Qt 代
  • 如何取消手风琴控件的更改事件

    accordion accordion change function event ui alert event have to be changed changestart function event ui return false 是
  • PyCharm 未解析的参考“打印”[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我开始学习 python 语言 并决定尝试一下 PyCharm IDE 它看起来非常不错 但是 每当我写 print 时 它都会显示 未解析
  • 回形针和 Amazon S3 问题

    我有一个在 Heroku 上运行的 Rails 应用程序 我使用回形针为用户头像和其他一些东西上传一些简单的图像 我将 S3 设置为我的后端 一切似乎都工作正常 除了在尝试推送到 S3 时出现以下错误 The AWS Access Key
  • 使用终端命令向上 n 个文件夹?

    cd 向上移动一个文件夹 是否有一个 单行 命令可以向上移动 n 个文件夹 您当然可以定义一个函数来执行此操作 go up for i in seq 1 do cd done go up 3 go 3 directories up
  • 在 TreeMap、HashMap 或 LinkedHashMap 中存储具有重复键的值

    我目前正在开展一个项目 在该项目中我从社会保障网站检索有关姓名的数据 基本上我得到了一个数字x 以及年份y和z 我必须返回 y 到 z 每年的前 x 个名字 所以从网站返回的数据是姓名 排名和年份 我必须将返回的每个名称输入到 TreeMa