1. 应用场景。
对于一对多的映射
A --B
--C
--D
--E
当取得A时,即使BCDE也是有顺序的。
但是如果对于C,需要根据另一个配置表F进行再次装配,并且需要按照F的某一个字段进行排序,这种情况下可以利用TreeMap 实现。
2. 实现概述。
由于框架限制,一些其他方法不可行。
所以实现如下:
SortedMap sortedMap=new TreeMap();
A a=DAO.find();
List<C> cl= a.getC();
List<C> newCl = new List();
for(Iterator it = cl.iterator()){
C c = it.next;
F f = DAO.find(c.关联字段);
c.setXX(f.getXX);
c.setYY(f.getYY);
[color=red] //放入有序MAP中
sortedMap.put(f.排序字段, c);[/color]
}
[color=red]//由MAP转换为C List[/color]
Set set=sortedMap.entrySet();
for (Iterator it = set.iterator(); it.hasNext();){
C c = it.next().getValue();
newCl .add(c);
}
[color=red]//设定排序后的C List
a.setC(newCl );[/color]
2.
// [color=darkred]Using a TreeMap for alphabetical ordering of attribute names[/color]
Map<String, Object> attributesToExpose = new TreeMap<String, Object>();
Map<String, Object> params = new TreeMap<String, Object>();
对于一对多的映射
A --B
--C
--D
--E
当取得A时,即使BCDE也是有顺序的。
但是如果对于C,需要根据另一个配置表F进行再次装配,并且需要按照F的某一个字段进行排序,这种情况下可以利用TreeMap 实现。
2. 实现概述。
由于框架限制,一些其他方法不可行。
所以实现如下:
SortedMap sortedMap=new TreeMap();
A a=DAO.find();
List<C> cl= a.getC();
List<C> newCl = new List();
for(Iterator it = cl.iterator()){
C c = it.next;
F f = DAO.find(c.关联字段);
c.setXX(f.getXX);
c.setYY(f.getYY);
[color=red] //放入有序MAP中
sortedMap.put(f.排序字段, c);[/color]
}
[color=red]//由MAP转换为C List[/color]
Set set=sortedMap.entrySet();
for (Iterator it = set.iterator(); it.hasNext();){
C c = it.next().getValue();
newCl .add(c);
}
[color=red]//设定排序后的C List
a.setC(newCl );[/color]
2.
// [color=darkred]Using a TreeMap for alphabetical ordering of attribute names[/color]
Map<String, Object> attributesToExpose = new TreeMap<String, Object>();
Map<String, Object> params = new TreeMap<String, Object>();