问题标签 [multikey]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Change every value of a MultiKeyMap (Apache Commons)
As part of a larger program I am trying to multiply every value of an Apache Commons MultiKeyMap
by 120. I think I could use an Iterator
, but I believe those only work for normal hashmaps.
What I want to do, in terms of arrays, is this:
I am not sure how to implement something like this with a MultiKeyMap
. I have looked for solutions, and found a way to iterate a normal HashMap
(Update all values at a time in HashMap):
However, this works only for a simple <K, V>
map, where I have <K, K, K, V>
. How could I do this with a MultiKeyMap
?
java - 使用多个键参数化 MultiKeyMap
有没有办法MultiKeyMap
用多个键参数化 Apache Commons'?IE
我最初有原始MultiKeyMaps
但由于这些映射在我的程序中的频率,我想通过参数化它们来确保一致性。
我不想使用MultiKeys
,因为我存储在 MultiKeyMap 中的数据需要MultiKey<String, String, Integer>
. 但是,MultiKey
仅支持一种类型的键(MultiKey<String>
或 MultiKey<Integer>
)。如果有解决方法,我愿意接受建议。
需要明确的是,我要解决的总体问题是:我想通过参数化它们来确保MultiKeyMaps
程序中的 具有相同类型的键,但在键 ( <K, K, K, V> = <String, String, Integer, Float>
) 中具有不同的类。
编辑:有人建议(在现在已删除的答案中)我使用 a Triple<String, String, Integer>
,我试过:
但是,在该语句的第三行,它似乎期望以put(Triple<String, String, Integer> key1, Triple<String, String, Integer> key2, Float value)
. 我现在的问题是:有了这个答案,我现在不需要 a 了MultiKeyMap
吗?我应该现在使用Map<Triple<String, String, Integer>, Float>
吗?
还值得注意的是,我需要频繁地遍历这个映射(有大量数据),当我有一个非参数化的时候这很容易,MultiKeyMap
因为我可以get()
根据需要更改方法中的参数。使用 a Triple
,我相信Triple
每次迭代都必须创建一个新实例;这会占用大量资源还是有办法解决这个问题?
java - 如何迭代MultiKeyMap?
我正在使用来自提供多键值对的 commons-collections 的 MultiKeyMap。我有 3 个键,它们是字符串。我有两个问题,我不知道如何解决。
如何遍历所有多键值对?有了一个简单的 HashMap 我就知道了。
其次,如何在前两个键固定的情况下获得所有多键值对?这意味着我想得到这样multiKey.get("key1","key2",?);
的东西,其中没有指定第三个键。
c# - c#Multikey Dictionary,“KeyNotFoundException”当用自己的可变类替换元组时
我声明了一个可变类,它可以替代元组作为字典的键。原因是序列化。序列化工作得很好。出现以下问题,我在使用此类时收到“KeyNotFoundException”,但前提是使用此类的新实例进行查找。为了更清楚地说明这一点,请参阅以下类定义:
这是示例程序:
使用普通元组的示例工作得很好,但是当我使用我自己的类 STuple 时,它只有在我使用与添加所用的完全相同的键(相同的实例)时才有效。我是一个完全的初学者,是否有可能因为值类型和引用类型的一些混淆而出现问题?
在我看来真的很奇怪,使用 foreach 查找仍然有效:
java - Multikey hashmap - 基于强/弱键的查找
我正在基于 Java 的应用程序中构建一个简单的多键哈希映射,它将返回一个查找值,提供不同的键组合,其中所有键和值都是普通字符串。假设下面是一个示例数据集。
其中 * 表示任何值。
哈希映射将包含键 1-4 和查找值的结果。键将具有特定的值(例如 T1、T2),并且只有具有 *(ANY) 值的数据集。我试图找出根据最具体的键查找正确值的最佳方法。
例如,T1、T2、T3、T4 的组合键(从上面)应该返回 A1 作为结果,而 B1、B2、T3、T4 的组合键应该返回 A4 作为结果。
任何想法都会非常感激。首选是在没有任何额外库/框架的简单 Java 中完成,但如果需要,很乐意查看它们。
非常感谢
c++ - 如何使用/创建 boost::multi_index?
有人可以向我详细解释如何使用创建多索引地图boost::multi_index
吗?我在网上看到了很多例子,也看到了 boost 页面,但我无法理解。我想通过多个 int/long 映射类对象指针作为键。有人可以帮助我理解这一点吗?
我有一个类X
和该类的多个属性,它们是long long
, long
, int
, int
。我想将属性long long
, long
, int
,存储int
为映射到 -> <pointer to X> 的键。
我希望能够查找给定任何属性的指针。一些属性对每个对象都是唯一的,X
而一些属性不是唯一的。
mongodb - MongoDB多键索引性能
背景
我有一组具有如下文档结构的用户:
索引:
文档数量约为 700000
设想
为了解释通过登录搜索用户,我这样做:
如您所见, executionStats.executionStages.inputStage.nReturned 为 0, executionStats.totalDocsExamined 为 0。没关系,我猜没有像输入的登录名的文档。但是,如果我想通过电子邮件搜索用户,我将执行以下操作:
这里 executionStats.executionStages.inputStage.nReturned (和 executionStats.totalDocsExamined)等于 698993 (executionStats.nReturned 是 0 就像在第一个查询中一样)
问题
为什么当我在 ixscan 阶段使用多键索引 (users.user) 搜索时会返回我的所有集合,而 fetch 阶段会发生所有集合。但是,如果我使用非多键索引(登录)搜索,ixscan 阶段会扫描预期值,并且在 fetch 阶段我会给出我想要的。
UPD:当我使用正则表达式时,不像 /smth/,而是 /^smth/ 然后通过 emails.email 扫描字段也返回 0 个元素。为什么多键和普通索引给我像 /smth/ 这样的正则表达式不同的结果?
indexing - 使用猫鼬在多键和嵌套文档上创建索引
我正在使用 mongoose 创建索引,它将检查 Name、PName 和 OName 的唯一性(Name+PName+OName 应该是唯一的)。请检查以下实现
文档
我需要限制上述文档的插入,因为 Name、PName 和 OName 不是唯一的。
java - 关于java中的双键并发hashmap
我需要双键并发哈希图。
我的第一次尝试只是使用java.util.concurrent.ConcurrentHashMap。像这样
但我认为这很丑陋。
我的第二次尝试是使用对象作为键。像这样
最后一次尝试是创建 DualkeyConcurrentHashMap。我只需要 put, get, containsKey。
它是更好和完美的线程安全吗?(我不能决定所有方法都需要同步。)
还有其他推荐的方法吗?
cobalt - EME 一致性测试 - WidevineH264MultiMediaKeySession
对于 [2018]EME 一致性测试 - v20171221 WidevineH264MultiMediaKeySession
我发现这个测试进行了 8 次 Initialize 和 8 次 GenerateKeyRequest for Key 所以我可以获得 8 次密钥许可证的配置消息。
但是Test的成功情况如下:
在 emeTest-20171221164539.js
runner.checkGE(video.currentTime, 15, 'currentTime'); runner.checkEq(testEmeHandler.keySessions.length, 8, 'keySessionCount'); runner.checkEq(testEmeHandler.keyCount, 128, 'keyCount');
当前时间超过 15 秒。会话计数是 8 是相同的。但是Keycount=128,我不能通过。只有 8 次 generateRequest。在此测试的一个会话中,我无法为 16 个键获得 128 个键。
我在 emeManager-20171221164539.js 中找到 onKeyStatusesChange() { self.keyCount++; }
所以我假设我需要为 onKeyStatusesChange() 获得 128 AddKey() 但现在我不知道要解决它。
我正在使用钴 RC 11.119147。和 Widevine CDM 3.2.1
- 这个版本 RC11 是否支持 multiKeyseeion >
- 是否有任何样品来处理 Widevine CDM 流程的测试?
- 为什么需要 8 次 Init 和 8 次 GenerateRequest ?为什么不是 1 次 init 和 8 次 GenerateRequest ?Init 需要清理一些东西吗?或者我们需要 8 个 CDM 实例?每个人只有一个会话?