首先面临这样一段代码,根据注释代码的意思是根据childr筛选数据
@SuppressWarnings("unchecked") public static List getList(String orgId, String userId,List child) { if (null == child || child.isEmpty()) return null; String[] list = getList(orgId, userId); List order = new ArrayList(); Map temp = new HashMap(); for (int j = 0; j < child.size(); j++) { EA_SimpleObject so = (EA_SimpleObject) child.get(j); temp.put(so.getKey(), so); } if (null != list && list.length > 0) { for (int i = 0; i < list.length; i++) { if (null != temp.get(list[i])) { order.add(temp.remove(list[i])); } } } Iterator itOrg = temp.keySet().iterator(); while (itOrg.hasNext()) order.add(temp.get(itOrg.next())); return order; }
简单解释一下EA_SimpleObject,这个是系统内为方便使用Map而定义的辅助类,只有Key,Value两个属性
首先开始让我郁闷的是order.add(temp.remove(list[i]));根本不明白这是个什么意思,因为我竟然忘了Map的remove后返回什么。直接往下看又看到循环Map存储值,我一下子断定,这个方法对数据根本没有筛选,数据没有多也没有少。而注释上注释着该方法是根据List child进行筛选。
也许大家都在嘲笑,这可不是没有多和少数据吗,更也许大家眨第二眼的时候已经看出来这是个排序了。
将集合数据放到Map中,根据方法内得到的数组数据,如果符合则会执行order.add(temp.remove(list[i]));也就是在Map中删除匹配的数据,然后Map的remove方法返回对应Key的值,这样数据在Map中删除时也存到集合的最前面了。最后遍历Map,将剩下的数据存放到集合中,这样就将传进来的集合,根据方法内获得数组的数据,进行了排序,一些数据优先的放到了集合的前面。
这貌似简单的让人蛋疼,可是对于数月不动代码的我来说,他让我趴下了,无语和狂忍中。
请您到ITEYE看我的原创:http://cuisuqiang.iteye.com
或支持我的个人博客,地址:http://www.javacui.com
相关推荐
C语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言...
Map a = new HashMap(); //方法一 Iterator it = a.entrySet().iterator(); while (it.hasNext()) { Map.Entry pairs = (Map.Entry) it.next(); System.out.println(pairs.getValue()); } //以下方法需要jdk5以上...
### Map.toString()后转换成Map类型的实现方法及解析 在Java编程中,有时我们需要将一个`Map`对象转换为字符串形式进行存储或传输,而在接收端又需要将该字符串重新转换回`Map`对象以便进一步处理。本篇将详细介绍...
"uni-app的map层级问题封装.zip"这个压缩包文件很可能是为了解决这一问题而提供的一个解决方案。 首先,uni-app是一个基于Vue.js的多端开发框架,它允许开发者编写一次代码,然后发布到iOS、Android、Web(H5、微信...
Java基础知识-day04 【Map】.pdf 本文档主要讲解Java中的Map集合,包括Map集合的概述、Map常用子类、Map接口中的常用方法、Map集合遍历键找值方式等。 Map集合概述 Map集合是一种特殊的集合,用于存储键值对对象...
- 运行监控:在实际运行中,通过比较实际效率Map与设计时的理论Map,可以发现潜在的问题或故障。 - 能源管理:在节能和能效提升项目中,效率Map提供了评估和调整电机运行策略的依据。 在实际使用"map.m"这个工具时...
尽管`std::map`已经提供了一套完整的功能,但自己动手实现可以帮助开发者深入理解底层的红黑树(Red-Black Tree)或其他平衡二叉查找树算法,这些算法是`std::map`的基础。 自定义`Map`的基本结构通常包括以下组件...
**RAMMap工具详解** RAMMap是一款强大的内存分析工具,由微软的 Sysinternals 团队开发,...了解如何正确配置和利用RAMMap的自动化功能,对于系统管理员和性能优化人员来说,是提升工作效率和解决内存相关问题的关键。
Jackson JSON 转 Map 之科学计数法问题解决方案 Jackson 是一个流行的 Java 库,用于将 JSON 数据转换为 Java 对象或 Map。在使用 Jackson 将 JSON 转换为 Map 的过程中,可能会遇到科学计数法的问题。该问题的出现...
2. **性能优化**:分析map文件可以揭示代码的大小,找出可能的优化点,比如减少不必要的代码体积,提高加载速度。 3. **内存分析**:查看哪些部分占用了大量内存,有助于识别内存消耗过高的问题。 4. **安全检查**:...
通过这些数据,我们可以计算出电机在每个工况点的效率,即: 效率 = (输出功率 / 输入功率) × 100% 其中,输出功率是电机在特定转速和转矩下的机械功率,可以通过转矩与转速的乘积得到;输入功率则由电流和电压的...
"IAR MAP文件分析" IAR MAP文件分析是编译器编译产生的MAP文件分析,文件后缀为.map,可以查看程序代码及数据在内存中的情况。MAP文件是IAR编译器编译生成的文件,记录了程序在内存中的分布情况。 在IAR工程中,...
通过分析Map文件,开发者可以定位到代码中的特定位置,以便于调试和解决问题。 2. **性能优化**:Map文件揭示了程序中各个部分的大小和位置,这有助于识别可能的内存浪费或过度使用。例如,如果一个函数占用的空间...
`EasyXmlUtil`中很可能包含了一个名为`xmlToMap`的方法,用于执行这个过程。 接下来,Map到XML的转换则需要构建XML文档结构。我们可以利用`javax.xml.transform.TransformerFactory`和`javax.xml.transform.dom....
C++中的`map`是一个关联容器,它存储键值对,其中每个键都是唯一的。`map`的数据结构通常实现为红黑树,提供了O(log n)的时间复杂度进行插入、查找和删除操作。下面我们将详细探讨`map`的基本用法和嵌套用法。 ### ...
- `std::unordered_map`:遍历哈希表通常需要遍历所有桶,因此其时间复杂度也是O(n),但实际运行速度可能比`std::map`快,尤其是当元素数量很大时。 **查找操作**: - `std::map`:查找操作同样为O(log n),因为...
《GEOMAP3.5安装指南及应用解析》 GEOMAP3.5是一款功能强大的地理信息系统(GIS)软件,其简洁的安装流程和无需许可证的特性,使其在用户群体中备受青睐。本文将详细阐述如何进行GEOMAP3.5的安装,并探讨其主要功能...
将Pojo对象转换为Map,可以简化数据处理过程,尤其是在JSP页面上展示数据时,Map的灵活性更加突出。本文将详细介绍如何实现Java中的Pojo到Map的转换,并通过具体的示例来演示这一过程。 首先,我们需要一个Pojo类,...
在大数据处理领域,高效的数据操作是关键,而Map和List作为两种常见的数据结构,它们的拆分技巧在处理大规模数据时显得尤为重要。Map拆分与List拆分涉及到数据的分布式处理,这通常在Hadoop、Spark等大数据处理框架...