最近用ext开发一个类似列表性的东西,为了直观一些我截屏了幅图.
数据的组装结构是LinkedHashMap<String, LinkedHashMap<String, LinkedList<TargetObject>>>最里面的TargetObject是真正里面显示的页面所需要的数据.
由于当时的难点是前台的显示,所以在开发后台程序的时候,也是前台程序显示的思路编写:先组转最外层的LinkedHashMap,然后组装里面的LinkedHashMap和LinkedList.
程序如下:
LinkedHashMap<String,LinkedHashMap> nodeHashMap = new LinkedHashMap<String,LinkedHashMap>();
LinkedHashMap<String,LinkedList<TargetObject>> companyHashMap = null;
TargetObject taskObject = new TargetObject();
taskObject.setFlowId(flowId);
List<TargetObject> tempTaskList = netdTaskService.searchTargetObjectList(taskObject);
//set detailObject to null as judgement afterward
detailObject = null;
LinkedHashMap<String,LinkedList<TargetObject>> nodeStoredList = new LinkedHashMap<String,LinkedList<TargetObject>>();
String[] flowArray = new String[]{"zdwlsjzzfa","shwlsjzzfa","spwlsjzzyj","zdjhhjtap","zzrzzwlsj","shwlsjzzjg","zxwlsjzzbcs","fxzxqkbtxssjg","gd"};
for(String htName : flowArray){
nodeStoredList.put(htName, new LinkedList<TargetObject>());
}
if(tempTaskList.size()>0){
LinkedList<TargetObject> nodeList;
for(String htName : flowArray){
for(TargetObject temp : tempTaskList){
if(htName.equals(temp.getHtName())){
//seperate history task to different node
nodeList = nodeStoredList.get(htName);
nodeList.add(temp);
//for echoing detail info if exist
if(detailObject==null&&htName.equals(object.getHtName())&& userId.equals(temp.getOwnerId())){
detailObject = temp;
}
}
}
}
for(Map.Entry<String,LinkedList<TargetObject>> nodeEntry : nodeStoredList.entrySet()){
//get the history task list related to node
nodeList = nodeEntry.getValue();
if(nodeList.size()>0){
companyHashMap = new LinkedHashMap<String,LinkedList<TargetObject>>();
String nodeChineseName = ((TargetObject)nodeList.get(0)).getHtDescription();
while(nodeList.size()>0){
Iterator<TargetObject> it = nodeList.iterator();
LinkedList<TargetObject> companyLinkedList = new LinkedList<TargetObject>();
//there must be some task record if coming here
String companyName = (nodeList.get(0)).getCompanyName();
while(it.hasNext()){
TargetObject tempTask = it.next();
if(companyName.equals(tempTask.getCompanyName())){
companyLinkedList.add(tempTask);
//remove the task record when be gathered
it.remove();
}
}
//put history task list into company HashMap
companyHashMap.put(companyName, companyLinkedList);
}
//put HashMap of comany into node map
nodeHashMap.put(nodeChineseName,companyHashMap);
}
else {
//break when there's no task record from this node
break;
}
}
}
后来发现可以从数据的角度考虑组装,而且实现起来比较简洁.
LinkedHashMap<String,LinkedHashMap> nodeHashMap = new LinkedHashMap<String,LinkedHashMap>();
TargetObject taskObject = new TargetObject();
taskObject.setFlowId(flowId);
List<TargetObject> tempTaskList = netdTaskService
.searchTargetObjectList(flowId);
LinkedHashMap<String, LinkedList<TargetObject>> nodeHistoryMap = new LinkedHashMap<String, LinkedList<TargetObject>>();
LinkedList<TargetObject> companyList = new LinkedList<TargetObject>();
TargetObject tempObject;
if (TextUtil.isNull(tempTaskList))
return;
for (int i = 0; i < tempTaskList.size(); i++) {
tempObject = tempTaskList.get(i);
nodeHistoryMap = nodeHashMap.get(tempObject.getHtDescription());
//如果不存在创建一个新的节点列表
if (nodeHistoryMap != null) {
companyList = nodeHistoryMap.get(tempObject.getCompanyName());
//如果不存在创建一个新的公司列表
if (companyList != null) {
companyList.add(tempObject);
} else {
companyList = new LinkedList<TargetObject>();
companyList.add(tempObject);
//组装公司列表
nodeHistoryMap.put(tempObject.getCompanyName(),
companyList);
}
} else {
companyList = new LinkedList<TargetObject>();
companyList.add(tempObject);
nodeHistoryMap = new LinkedHashMap<String, LinkedList<TargetObject>>();
//组装公司列表
nodeHistoryMap.put(tempObject.getCompanyName(), companyList);
//组装节点列表
nodeHashMap.put(tempObject.getHtDescription(), nodeHistoryMap);
}
}
现在想想,其实还是思路的凝滞,在开发的时候容易形成思维定势.记录一下,以后常记.
分享到:
相关推荐
中医认为原发性痛经与患者体质和寒湿等因素有关,治疗上强调辨证施治,当归四逆汤则是治疗寒湿凝滞证痛经的常用方剂,具有活血化瘀、温经散寒之效。加减应用更可因人而异,提高治疗的针对性。特定电磁波治疗仪(TDP...
具体来说,他们将恶性淋巴瘤患者在放化疗前的常见临床表现分为七种中医证候,分别是寒痰凝滞证、气滞毒瘀证、虚火痰结证、血瘀癥积证、血热风燥证、肝肾阴虚证和气血双亏证。每种证候的病机(疾病产生的原因和机理)...
1. 气血凝滞:气血是中医对人体生理活动的基本物质,其中“气血凝滞”是指气血运行不畅,可能导致疼痛、肿块等症状。寒邪是最易引起气血凝滞的邪气,因为寒性收引,可使气血收缩凝结。 2. 正气与邪气:中医认为,...
寒邪侵入体内,会使得气血凝滞,形成痰湿瘀阻的体质,进一步促进肌瘤的形成。中医经典《黄帝内经》中提到,寒气可能导致血络凝滞,久而久之形成积症,即现在的肌瘤。 预防子宫肌瘤的关键在于调整生活习惯。首先,要...
可是,她的目光在某一观众席上凝滞了——”运用了神态描写,通过目光的凝滞表现人物内心情绪。 8. 小说要素:小说的三要素是情节、人物和环境。 9. 修辞手法:选项D中“汉堡港......就像成熟的乐队演奏熟悉的乐曲”...
中医认为肿的发生多由经络阻塞,气血凝滞所致,西医则解释为局部炎症性充血,血液成分渗出引起的。辨肿首先看其外形,肿可分局限性、弥漫性和全身性,根据肿块的形态,如扁平、扁圆、圆球等,以及肿的部位和颜色,如...
综上所述,该研究不仅深化了中医对于T2DM合并CAD的理解,而且为临床提供了新的诊断和治疗思路。未来的研究可以进一步探讨如何将HCY和hs-CRP水平与现代医学检测技术相结合,实现对疾病的早期预警和个体化治疗。
2. 瘀血凝滞证:伤后2-4周,肿痛未消,骨折初步对位,但未完全愈合。症状包括伤处疼痛,功能受限,舌红或有瘀点,苔白,脉弦。此时需继续活血化瘀,促进骨折愈合。 3. 肝肾缺乏证:骨折4周以上,骨折端仍不稳定,...
VB6_延时(SLEEP)等待类模块(2016年修改版),可以在VB6中直接使用。 作用:比SLEEP更先进,延时等待 --不会凝滞窗体 - 不会导致窗体假死。
3. 寒湿凝滞型痛经:18岁女性出现经行腹痛,小腹冷痛,得热痛减,拒按,经量少,色紫黑有块,舌苔白腻,脉沉紧。这符合中医的寒湿凝滞型痛经,是由于体内寒湿之邪导致经血运行不畅,表现为经期腹痛,尤其遇寒加重。 ...
本文旨在深入探讨双腿肿胀酸疼无力的潜在原因,并针对中西医的不同诊疗思路提供综合性的治疗方法与护理建议。 从西医角度来看,双腿肿胀酸疼无力可能与多个系统的功能异常相关。例如,局部神经受压可能导致神经信号...
病症主要表现为寒湿凝滞导致筋脉麻痹阻塞,进而引起肩肌肉萎缩和肩关节活动受限,被称为“冻结肩”。此病反复发作,严重影响患者日常生活、学习和工作。 1. **中医按摩护理** 中医按摩能通络止痛,平衡阴阳,调节...
他不仅注重解决慢性咽炎这一单一病症,还综合考虑了患者可能存在的脾胃虚弱、痰湿、瘀滞等问题,从而为慢性咽炎的治疗提供了全面而深入的思路。 熊教授的治疗经验汇编成书,给广大的中医学者和临床医生带来了宝贵的...
5. 凝滞:形容物体因某种原因变得缓慢或无法流动,比如血液凝滞。 6. 勾留/逗留:表示短暂地停留在一个地方,不立即离开。 7. 平息:指情况由动荡变为平静,如情绪、风势的平息。 8. 停息:与停止相近,指动作或声音...
31. 寒邪致病多见疼痛,是因为其寒性凝滞,阻碍气血流通,造成局部疼痛。 以上所述内容涵盖了中西医结合执业医师考试中关于经络理论和六淫邪气的基本知识点,这些都是学习中医基础理论时需要掌握的重点。了解并熟练...
实例代码演示VB SetWaitableTimer定时函数和 Sleep延时函数的延时效果对比,VB定时、延时函数大比拼,用SetWaitableTimer函数定时可以很流畅的拖动窗口,而用Sleep函数时,会产生在延时期间窗口凝滞现象,这不是我们...
4. **湿邪特性**:湿邪的性质是阴性的,能损伤阳气,阻碍气机,导致重浊和黏滞的症状,但不包括凝滞,凝滞是寒邪的特性。 5. **脾胃病症**:脾胃湿热可引起厌油腻、脘痞腹胀等症状,而肝胆湿热则伴有黄疸等表现,...
而别络与经别的功能则为中医临床治疗提供了更多的思路和方法,它们在治疗中的应用有助于加强脏腑之间的联系,从而达到调理气血、平衡阴阳的目的。 接着,冲脉和跷脉作为调节人体功能的重要经脉,在中医理论中具有...
- 半凝滞:形容物体或状态近乎停滞,此处用来形容人流缓慢的状态。 - 怦然:形容心跳加速,此处表示感动或激动的心情。 - 弥深:更加深厚,文中指随着时间的推移,作者对纪念碑的理解越来越深。 3. 修辞手法分析...