Java 使用多个属性查找匹配对象

Java 使用多个属性查找匹配对象,java,algorithm,design-patterns,Java,Algorithm,Design Patterns,我目前正在设计一个系统,需要将事件对象E与对象C相匹配,属性在配置中定义。配置中将有多个要匹配的对象。E有许多属性,并且来自外部系统。配置将是通用的,因为您可以在多个C对象中定义任何属性以匹配E。例如,将此事件E传递给系统: E.a = 1 E.b = 2 ... E.z = 26 C配置中定义的对象: C1.b = 2 C1.z = 21 C2.c = 3 C2.d = 4 C2将以与E匹配的方式返回 我知道最简单的算法是迭代每个C中的所有字段以匹配E,但我想知道这是否是在所有C对象中找

我目前正在设计一个系统,需要将事件对象E与对象C相匹配,属性在配置中定义。配置中将有多个要匹配的对象。E有许多属性,并且来自外部系统。配置将是通用的,因为您可以在多个C对象中定义任何属性以匹配E。例如,将此事件E传递给系统:

E.a = 1
E.b = 2
...
E.z = 26
C配置中定义的对象:

C1.b = 2
C1.z = 21

C2.c = 3
C2.d = 4
C2将以与E匹配的方式返回


我知道最简单的算法是迭代每个C中的所有字段以匹配E,但我想知道这是否是在所有C对象中找到E匹配的最快方法。有什么想法吗?

为每个对象的所有字段创建一个哈希键并进行比较。

为每个对象的所有字段创建一个哈希键并进行比较。

我认为这不是正确的解决方案。我可以散列配置属性以加快各个字段中的匹配,但无法散列整个配置对象以与事件匹配。我仍然需要遍历事件中的所有字段以找到匹配项,然后如果其中一个字段上有匹配项,我每次都需要检查其余字段。我认为这不是正确的解决方案。我可以散列配置属性以加快各个字段中的匹配,但无法散列整个配置对象以与事件匹配。我仍然需要遍历事件中的所有字段以找到匹配项,然后如果其中一个字段上有匹配项,我每次都需要检查其余字段。在什么逻辑下C2将作为匹配项返回到E?在什么逻辑下C2将作为匹配项返回到E?