hashmap 相关问题

一种数据结构,它使用散列函数将标识值(称为键)映射到其关联值

库中的全局可变 HashMap [重复]

我想要一个可扩展的字典,将对象与我的库中的 &'static str 链接在一起。 HashMap 似乎是正确的数据结构,但我如何使其成为全局的、初始的......

回答 1 投票 0

最快的键值分组

给定一组 对,按值将键分组在一起的最先进方法是什么? #包括 #包括 #包括 #我...

回答 1 投票 0

HashMap 键和值,我需要一直定义 equals 和 hashCode() 吗?

我是java初学者,我有一个关于hashMap的问题。 让我们想象一下这个场景: 我有一个 Person 类: `Person a=new Person(int id, String fullName, intage)` 我没有...

回答 1 投票 0

HashMap 构造函数在传递两个流作为参数时无法推断参数

这是我在直播中的第一个方法。我想自学它,但由于它是一种新的编程风格,我遇到了困难。 问题 下面的方法有一个Map 这是我在直播中的第一个方法。我正在尝试自己学习它,但由于它是一种新的编程风格,我遇到了困难。 问题 以下方法有一个 Map<Long, Ingredient> 参数(Ingredient 具有 String 属性 name)。 我想返回一个倒置的Map<String, Long>(字符串是类的属性“名称”Ingredient)。 我的工作for循环解决方案 public static Map<String, Long> focusOnNameAndInvert(Map<Long, Ingredient> articles) { ArrayList<String> nameList = new ArrayList<>(articles.values().stream().map(Ingredient::getName).collect(Collectors.toList())); ArrayList<Long> keyList = new ArrayList<>(articles.keySet()); Map<String, Long> nameAndInvertedMap = new HashMap<>(); for (int i = 0; i<nameList.size(); i++){ nameAndInvertedMap.put(nameList.get(i), keyList.get(i)); } return nameAndInvertedMap; } 我的直播方法 初始化 <> 右侧的 HashMap 带有红色下划线,并显示 “无法推断参数”(使用 IntelliJ) public static Map<String, Long> focusOnNameAndInvert(Map<Long, Ingredient> articles) { Map<String, Long> nameAndInvertedMap = new HashMap<>( articles.values().stream().map(Ingredient::getName), articles.keySet().stream().map(articles::get)); return nameAndInvertedMap; } 为什么这没有按我预期的方式工作,我该如何解决它? 您的方法实际上并没有达到您希望的效果。从编译器错误中可以看出,没有 HashMap 构造函数接受 List 键和 List 值。此外,即使确实如此,您也会流式传输给定的Map(两次),然后尝试交换不同流中的键和值,最后甚至不收集流的值。流是延迟评估操作的管道,如果您不添加终端操作,它们甚至不会被执行。 这里有一个 Oracle 官方教程,很好地总结了流的概念及其工作原理: https://docs.oracle.com/javase/tutorial/collections/streams/parallelism.html#laziness 您可以通过流式传输给定映射的条目来编写您的方法,然后使用 collect(Collectors.toMap()) 终端操作收集它们,其中每个 Ingredient 的名称映射为键,而长键作为它们的值。 public static Map<String, Long> focusOnNameAndInvert(Map<Long, Ingredient> articles) { return articles.entrySet().stream() .collect(Collectors.toMap(entry -> entry.getValue().getName(), entry -> entry.getKey())); } 请注意,如果有多个键(即您的情况下有重复的成分名称),则使用方法 toMap() 的 2 个参数版本收集条目将不起作用。该方法的 3 个参数版本应该是首选,因为它允许处理冲突键的情况(多个相同的键映射不同的值)。可能的实现可能是:丢弃一个值而不是另一个值,对这些值求和等等。 这是一种可能的实现,其中仅维护两个值之一。 public static Map<String, Long> focusOnNameAndInvert(Map<Long, Ingredient> articles) { return articles.entrySet().stream() .collect(Collectors.toMap(entry -> entry.getValue().getName(), entry -> entry.getKey(), (longVal1, longVal2) -> longVal1)); } 您的直播不正确。应该是这样的: public static Map<String, Long> focusOnNameAndInvert(Map<Long, Ingredient> articles) { return articles.entrySet().stream() .collect(Collectors.toMap(entry -> entry.getValue().getName(), Map.Entry::getKey)); }

回答 2 投票 0

使用 hashmap 检查新数组是否包含特殊字符

JavaScript 编程新手。所以我会把这篇文章写得很短,方便你阅读,这样你就不会浪费时间。 试图获得一张适用于密码生成器的支票。 const chars = ["a", "b&q...

回答 1 投票 0

将 Java7 代码转换为 Lamba 表达式,以将 <String,Integer> 从 System.in 添加到 HashMap

尝试将以下用于将姓名和电话号码添加到 HashMap 的正常代码转换为 Java 8 中的 Lambda 表达式,并在电话号码中搜索给定姓名。此代码用于

回答 1 投票 0

std::unordered_map 和 boost::unordered_map 为桶预留了多少空间,为什么?

当您将元素插入 unordered_map 并且新元素数量大于 max_load_factor()*bucket_count() 时,容器会增长(桶数增长)并发生重新哈希。 我做了一个...

回答 1 投票 0

在杰克逊映射期间将数组转换为哈希图,每个条目键是条目的 id 字段

这是我正在处理的 JSON: { “默认”:“忽略我”, “目录”: [ { “id”:“对象1”, “名字”...

回答 1 投票 0

Rust HashMap 支持指针稳定性,允许键引用其值

在 Rust 中,无法直接使用 HashMap,其中键是 &str,它引用其相应值中的 String 成员。下面的例子说明了这个想法: 输入 PersonM...

回答 1 投票 0

Java中如何将两个数组映射到一个HashMap?

我有两个字符串数组。一个有简短的名字。 // 天短名称 String[] ShortNames = {"SUN", "MON", "...", "SAT"}; 另一个名字很长。 // 天长名称 String[] longNames = {"巽他...

回答 4 投票 0

如何使用可能有拼写错误的键在 HashMap 中进行搜索?

我正在寻找一种方法来查找用户不够聪明而无法正确拼写的单词。我已经处理过一些情况(例如将单词大写,使其与

回答 1 投票 0

使用FreeMarker更新hashmap有哪些方法?

我最近开始研究ftl FreeMarker。 我使用#assign 创建了一个哈希图。 更新此 hashMap 的值的推荐方法是什么? 数据结构(地图、列表等)是否不变...

回答 1 投票 0

Go 基准测试问题

我正在尝试对自定义哈希图实现进行基准测试 - > https://github.com/dmarro89/go-redis-hashtable。 该结构目前有 3 个方法:Set、Get 和Delete。 在设置基准中,我准备...

回答 1 投票 0

使用二叉搜索树的Hashmap错误实现?

我正在做一些leetcode练习https://leetcode.com/problems/design-hashmap/description/尝试使用二叉搜索树作为底层数据结构在C++中实现哈希图。我通过了...

回答 1 投票 0

Golang - 基准测试问题

我正在尝试对自定义哈希图实现进行基准测试 - > https://github.com/dmarro89/go-redis-hashtable。 该结构体目前有 3 个方法:Set、Get 和Delete。 在设置基准中,我准备...

回答 1 投票 0

迭代具有 50000 或更多记录以匹配键的映射的有效方法

公共用户 getUserEntryFromIdKey(String id) { for (Map.Entry 条目: userMap.entrySet()) { if (entry.getKey().matches(id)) { 返回entry.getValue(); ...

回答 2 投票 0

使用迭代器删除条目时出现ConcurrentModificationException

我有一段简单的代码,它循环遍历映射,检查每个条目的条件,如果条件为真,则在条目上执行一个方法。之后该条目将从地图中删除...

回答 4 投票 0

如何统计unordered_set中整数出现的频率?

一个可能看起来微不足道的问题,但我想知道在我将包含重复整数的数组转换为 unordered_se 之后是否有一种方法可以获得唯一的整数计数...

回答 3 投票 0

如何通过对两个键的引用从具有两个键的 HashMap 中获取值?

HashMap 实现 get 方法的方式需要单个不可变借用。但我想要一个单独接受两个键的实现(用于未来的特征接口),如下所示: 酒吧街...

回答 3 投票 0

如何将具有多个相同键和列表的多个映射组合为值?

我是Java新手,我正在尝试合并多个以字符串作为键、列表作为值的映射以生成一个新的映射。 公开课学生{ 私有字符串名称; 私人字符串国家; //

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.