双层HashMap实现检索

本文介绍了一种插件分类管理系统的设计与实现。系统采用双层HashMap结构来存储和快速检索插件分类信息,其中包括plugin_id、plugin_sid及对应的分类id。初始化阶段从数据库加载所有插件分类信息,并提供接口用于后续通过插件标识快速获取分类。

任务需求:

1、对plugin_id和plugin_sid所确定唯一数据进行分类

2、一个plugin_id有多个plugin_sid

3、初始化的时候从数据库读入,以后在内存中实现通过plugin_id和plugin_sid确定其分类id


源代码:

从数据库读入所有记录进行初始化

String sql = "select plugin_id, sid , class_id from ossim.plugin_sid order by plugin_id, sid"; System.out.println(sql); ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ initHashMap(rs.getInt("plugin_id"),rs.getInt("sid"),rs.getInt("class_id")); }

创建双层HashMap

HashMap PluginGroup=new HashMap(); HashMap pluginSid_ClassID; public void initHashMap(int pid,int sid,int cid){ if((pluginSid_ClassID=(HashMap)PluginGroup.get(pid))!=null){ /*说明已经存在关于此plugin_id的数组,直接插入*/ pluginSid_ClassID.put(sid, cid); }else{ /*第一次创建*/ //nodes=new Plugin_sidGroupbyPlugin_id(); pluginSid_ClassID=new HashMap(); pluginSid_ClassID.put(sid, cid); PluginGroup.put(pid, pluginSid_ClassID); } }

通过plguin_id和plugin_sid确定分类id

public int getClass_id(int plugin_id,int plugin_sid){ Integer class_id=0; if((pluginSid_ClassID=(HashMap)PluginGroup.get(plugin_id))!=null){ if((class_id=(Integer)pluginSid_ClassID.get(plugin_sid))!=null) return class_id.intValue(); } return 0; }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值