最近用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);
}
}
现在想想,其实还是思路的凝滞,在开发的时候容易形成思维定势.记录一下,以后常记.
分享到:
相关推荐
综上所述,这篇研究揭示了中医理论在现代医学中的实际应用,证明了传统医药与现代科技相结合在疾病治疗上的潜力,为原发性痛经的治疗提供了新的思路。同时,也强调了针对不同体质和病因采取个体化治疗方案的重要性。...
该方案主要分为五个部分,包括常见证候要点、常见病症/证候施护、中医特色治疗护理、安康指导和护理难点及解决思路。 在中医理论中,锁骨骨折后的常见证候分为三个阶段:血瘀气滞、瘀血凝滞和肝肾亏虚。血瘀气滞...
首先,盆腔炎的中医证候分为三种主要类型:湿热瘀结证、气滞血瘀证和寒湿凝滞证。湿热瘀结证表现为少腹疼痛拒按,腰骶部酸痛,伴低热、黄色黏稠带下等症状;气滞血瘀证则以少腹胀痛或刺痛,月经异常,可能伴有瘀血块...
熊大经教授是中医耳鼻喉科的专家,他在治疗慢性咽炎方面积累了丰富的经验。...他的治疗方法不仅局限于单一病症,还考虑到可能伴随的脾胃虚弱、痰湿、瘀滞等问题,为慢性咽炎的治疗提供了全面而深入的思路。
具体来说,他们将恶性淋巴瘤患者在放化疗前的常见临床表现分为七种中医证候,分别是寒痰凝滞证、气滞毒瘀证、虚火痰结证、血瘀癥积证、血热风燥证、肝肾阴虚证和气血双亏证。每种证候的病机(疾病产生的原因和机理)...
治疗方法分为内治和外治,内治法根据疾病的不同阶段,如热毒蕴结、湿热下注、阴寒凝滞、阴虚湿热和气血两虚等不同证候,选择不同的方剂和药物,例如仙方活命饮、清热利湿汤、阳和汤和滋阳除湿汤等。 在内治法中,...
1. 气血凝滞:气血是中医对人体生理活动的基本物质,其中“气血凝滞”是指气血运行不畅,可能导致疼痛、肿块等症状。寒邪是最易引起气血凝滞的邪气,因为寒性收引,可使气血收缩凝结。 2. 正气与邪气:中医认为,...
筋伤的病理变化可大致分为瘀血凝滞、筋位异常和筋断裂三种。瘀血凝滞表现为络脉受损,但没有明显的断裂和严重功能障碍;筋位异常则是筋的位置发生改变,伴有瘀肿;筋断裂则导致明显的功能丧失和异常活动。 在诊断筋...
6. **文言句式** - 区分了"屈原既放"、"游于江潭"、"是以见放"、"圣人不凝滞于物"等句的句式,其中"游于江潭"为状语后置句,其他为被动句。 7. **长句改短句** - 展示了如何将长句分解为多个逻辑连贯的短句,以提高...
寒邪侵入体内,会使得气血凝滞,形成痰湿瘀阻的体质,进一步促进肌瘤的形成。中医经典《黄帝内经》中提到,寒气可能导致血络凝滞,久而久之形成积症,即现在的肌瘤。 预防子宫肌瘤的关键在于调整生活习惯。首先,要...
在主治证候方面,高频证候包括气血两虚证和风寒湿凝滞筋骨证。所涉及的中成药主要治疗虚劳、眩晕等中医疾病,以及神经衰弱和风湿性关节炎等西医疾病。特别地,黄芪八珍汤和三痹汤被提及为治疗气血两虚证和风寒湿凝滞...
可是,她的目光在某一观众席上凝滞了——”运用了神态描写,通过目光的凝滞表现人物内心情绪。 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. 停息:与停止相近,指动作或声音...