gpt4 book ai didi

java - 寻找一种智能且快速的搜索算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:35:12 25 4
gpt4 key购买 nike

假设我有 2 个对象数组,它们在以下 schemna 中相互映射:

数组 1 :

String [] prog_types1 = {"Program1","Program2","Program3","Program4"};

和数组 2:

String [] prog_types2 ={"SubProgram1","SubProgram2","SubProgram3","SubProgram4",  
"SubProgram5","SubProgram6","SubProgram7","SubProgram8","SubProgram9","SubProgram10"};

从它的名字可以看出,prog_types2 是 prog_types1 的扩展,但有一些重复的值,所以这些程序之间的完整映射看起来像这样:

prog_types1     prog_types2
ProgramType1 SubProgramType1
ProgramType1 SubProgramType2
ProgramType1 SubProgramType7
ProgramType1 SubProgramType9
ProgramType2 SubProgramType12
ProgramType2 SubProgramType7
ProgramType2 SubProgramType9
ProgramType3 SubProgramType1
ProgramType3 SubProgramType2
ProgramType3 SubProgramType21
ProgramType3 SubProgramType27
ProgramType3 SubProgramType7
ProgramType5 SubProgramType12
ProgramType5 SubProgramType9

我的问题是:从更快的处理和重用的角度来看,将这些数组相互映射的最佳方式是什么?我已将其实现为:

-- 一组类(类 prog1 和 prog2,然后将其放入 vector 中)...

-- 带有哈希集的哈希表

-- 可能还有一个数组

我正在寻找的方式不应该包括为 prog1 对象再次创建相同的 prog2 对象,就像前面描述的所有方式一样,而是通过索引位置或以任何其他方式映射它。只是寻找一个很好的算法方法来解决它......

提前致谢

附注它应该在 1 个包中仅在几个类之间使用,它的主要用途是基于 prog1 类型值的 prog2 类型值的填充

p.s.2 java7

最佳答案

使用 MultiMap来自 Guava 图书馆,你可以说:

Multimap<String, String> mmap = ArrayListMultimap.create();
mmap.put("Program1", "SubProgramType1");
mmap.put("Program1", "SubProgramType2");
// etc.

mmap.get("Program1")

看起来像:

[SubProgramType1, SubProgramType2, SubProgramType7, SubProgramType9]

顺便说一句,Hashtable 现在不用于散列集合,已被 HashMap 取代:)

关于java - 寻找一种智能且快速的搜索算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12044215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com