问题标签 [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.

0 投票
1 回答
810 浏览

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?

0 投票
1 回答
2456 浏览

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每次迭代都必须创建一个新实例;这会占用大量资源还是有办法解决这个问题?

0 投票
3 回答
8951 浏览

java - 如何迭代MultiKeyMap?

我正在使用来自提供多键值对的 commons-collections 的 MultiKeyMap。我有 3 个键,它们是字符串。我有两个问题,我不知道如何解决。

如何遍历所有多键值对?有了一个简单的 HashMap 我就知道了。

其次,如何在前两个键固定的情况下获得所有多键值对?这意味着我想得到这样multiKey.get("key1","key2",?);的东西,其中没有指定第三个键。

0 投票
1 回答
179 浏览

c# - c#Multikey Dictionary,“KeyNotFoundException”当用自己的可变类替换元组时

我声明了一个可变类,它可以替代元组作为字典的键。原因是序列化。序列化工作得很好。出现以下问题,我在使用此类时收到“KeyNotFoundException”,但前提是使用此类的新实例进行查找。为了更清楚地说明这一点,请参阅以下类定义:

这是示例程序:

使用普通元组的示例工作得很好,但是当我使用我自己的类 STuple 时,它​​只有在我使用与添加所用的完全相同的键(相同的实例)时才有效。我是一个完全的初学者,是否有可能因为值类型和引用类型的一些混淆而出现问题?

在我看来真的很奇怪,使用 foreach 查找仍然有效:

0 投票
0 回答
88 浏览

java - Multikey hashmap - 基于强/弱键的查找

我正在基于 Java 的应用程序中构建一个简单的多键哈希映射,它将返回一个查找值,提供不同的键组合,其中所有键和值都是普通字符串。假设下面是一个示例数据集。

其中 * 表示任何值。

哈希映射将包含键 1-4 和查找值的结果。键将具有特定的值(例如 T1、T2),并且只有具有 *(ANY) 值的数据集。我试图找出根据最具体的键查找正确值的最佳方法。

例如,T1、T2、T3、T4 的组合键(从上面)应该返回 A1 作为结果,而 B1、B2、T3、T4 的组合键应该返回 A4 作为结果。

任何想法都会非常感激。首选是在没有任何额外库/框架的简单 Java 中完成,但如果需要,很乐意查看它们。

非常感谢

0 投票
1 回答
7504 浏览

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而一些属性不是唯一的。

0 投票
1 回答
1090 浏览

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/ 这样的正则表达式不同的结果?

0 投票
0 回答
141 浏览

indexing - 使用猫鼬在多键和嵌套文档上创建索引

我正在使用 mongoose 创建索引,它将检查 Name、PName 和 OName 的唯一性(Name+PName+OName 应该是唯一的)。请检查以下实现

文档

我需要限制上述文档的插入,因为 Name、PName 和 OName 不是唯一的。

0 投票
1 回答
1201 浏览

java - 关于java中的双键并发hashmap

我需要双键并发哈希图。

我的第一次尝试只是使用java.util.concurrent.ConcurrentHashMap。像这样

但我认为这很丑陋。

我的第二次尝试是使用对象作为键。像这样

最后一次尝试是创建 DualkeyConcurrentHashMap。我只需要 put, get, containsKey。

它是更好和完美的线程安全吗?(我不能决定所有方法都需要同步。)

还有其他推荐的方法吗?

0 投票
1 回答
231 浏览

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

  1. 这个版本 RC11 是否支持 multiKeyseeion >
  2. 是否有任何样品来处理 Widevine CDM 流程的测试?
  3. 为什么需要 8 次 Init 和 8 次 GenerateRequest ?为什么不是 1 次 init 和 8 次 GenerateRequest ?Init 需要清理一些东西吗?或者我们需要 8 个 CDM 实例?每个人只有一个会话?