java多层map嵌套案例

java多层map嵌套案例

这是做项目事service层的一个方法,TmCisDataItemDef是一个对象,tmCisDataItemDefDao.queryForList()方法从数据库中取出所有TmCisDataItemDef表中的数据放大list中,再变量list,根据对象的字段分级放到map中。
public Map<String, Map<String, Map<String, List<TmCisDataItemDef>>>> getItemDefMap() {

		TmCisDataItemDef tmCisDataItemDef = new TmCisDataItemDef();
		List<TmCisDataItemDef> list = tmCisDataItemDefDao.queryForList(tmCisDataItemDef);

		Map<String, Map<String, Map<String, List<TmCisDataItemDef>>>> productMap 
				= new HashMap<String, Map<String, Map<String, List<TmCisDataItemDef>>>>();

		for (TmCisDataItemDef t : list) {
			// 判断机构是否存在
			if (productMap.get(t.getCreditOrgCode()) == null) {
				productMap.put(t.getCreditOrgCode(),
						new HashMap<String, Map<String, List<TmCisDataItemDef>>>());
			}
			Map<String, Map<String, List<TmCisDataItemDef>>> productInMap = productMap.get(t
					.getCreditOrgCode());
			// 判断产品是否存在
			if (productInMap.get(t.getProductCode()) == null) {
				productInMap.put(t.getProductCode(),
						new HashMap<String, List<TmCisDataItemDef>>());
			}
			
			Map<String, List<TmCisDataItemDef>> productIn2Map = productInMap.get(t.getProductCode());
			// 判断维度是否存在
			if (productIn2Map.get(t.getDmType()) == null) {
				productIn2Map.put(t.getDmType(),
						new ArrayList<TmCisDataItemDef>());
			}
			
			productIn2Map.get(t.getDmType()).add(t);
		}

		return productMap;
	}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106387.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C#生成Excel出现8000401a的错误的另一种解决办法。「建议收藏」

    C#生成Excel出现8000401a的错误的另一种解决办法。「建议收藏」网上能搜到的解决办法,常见的就是以下3种,比如参考这个博客https://www.cnblogs.com/gavindou/archive/2012/08/29/2661757.html1,增加虚拟权限:在web.config里面增加的键值;要求administrator具有管理员权限,这种方案使用后确实可行,可是不利于部署,因为有经验的人都知道把一个最高权限的服务器帐号密码公开显示在配置…

    2022年8月22日
    7
  • 如何完整卸载MySQL[通俗易懂]

    如何完整卸载MySQL[通俗易懂]如果MySQL没有卸载干净,想重装就不行了,本人按照网上的教程来过一遍,但是总是会有残留,于是自己琢磨了一下:1.先停止mysql服务,cmd模式下输入netstopmysql;2.进入控制面板卸载mysql;3.删除mysql文件夹下的my.ini文件及所有文件;4.运行“regedit”文件,打开注册表删除HKEY_LOCAL_M

    2022年6月17日
    36
  • html背景音乐自动播放代码_HTML5视频播放器代码

    html背景音乐自动播放代码_HTML5视频播放器代码src后文件可换

    2022年9月24日
    2
  • console.log()的作用与实现[通俗易懂]

    console.log()的作用与实现[通俗易懂]console.log()的作用是什么主要是方便你调式javascript用的。你可以看到你在页面中输出的内容。相比alert他的优点是:1,他能看到结构话的东西,如果是alert,淡出一个对象就是[objectobject],但是console能看到对象的内容。,2,console不会打断你页面的操作,如果用alert弹出来内容,那么页面就死了,但是console输出内容后你页面还可以正常操作。3,console里面的内容非常丰富,你可以在控制台输入:console,然后就可看到:Cons

    2022年7月14日
    18
  • android_使用ViewPager和Fragment实现滑动导航

    ViewPage是android-support-v4.jar包提供的用于页面滑动的库.这里没有将整个实现过程记录,只是把知识点摘出来单独解释.可参照代码自己实现.1.在xml布局文件中添加android.support.v4.view.ViewPager容器及显示导航所用标签android.support.v4.view.PagerTitleStrip,如我添加的xml内容如下

    2022年3月9日
    42
  • Android HandlerThread 详解

    Android HandlerThread 详解概述HandlerThread相信大家都比较熟悉了,从名字上看是一个带有Handler消息循环机制的一个线程,比一般的线程多了消息循环的机制,可以说是Handler+Thread的结合

    2022年6月30日
    24

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号