首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

list 过滤,该如何解决

2012-03-02 
list 过滤List中存放着从数据库中查询出的对象MapVO,数据如下:cityxycA119126cB16256cC5916cE16256cF16256

list 过滤
List中存放着从数据库中查询出的对象MapVO,数据如下:
city x y
 cA 119 126
 cB 162 56
 cC 59 16
 cE 162 56
 cF 162 56
try{
  List lt_xy=bo.electronicMapInfo(request, frm); 
  for(int i=0;i<lt_xy.size();i++){
MapVO vo=(MapVO)lt_xy.get(i);
  //这里如何逐一对每条数据里的x y字段进行比较判断,若存在相同的xy如:(cB,cE,cF) ????
   
  System.out.println(vo.getCity()+" "+vo.getX()+ " "+vo.getY());
   
  }
}
希望结果是:
cB 
cE 
cF 162 56
cA 119 126
cC 59 16

 

[解决办法]
在取数据的时候用一个加一点group by y,x才行。按照顺序去放这些数就是xy都相同的话它们会连着放

city x y 
 cA 119 126 
 cB 162 56 
 cC 59 16 
 cE 162 56 
 cF 162 56 

而是变成下边这样

city x y 
 cA 119 126
 cC 59 16 
 cB 162 56
 cE 162 56 
 cF 162 56

显示的时候用探测下一个的xy来决定是否显示当前的。

Java code
int x=-1,y=-1;  if(lt_xy.size()>1)  {     for(int i=0;i <lt_xy.size()-1;i++){     MapVO vo=(MapVO)lt_xy.get(i);     MapVO vo2=(MapVO)lt_xy.get(i+1);      if(vo.getX()==vo2.getX()&&vo.getY()==vo2.getY())    {       System.out.println(vo.getCity());     }else{       System.out.println(vo.getCity()+"  "+vo.getX()+ " "+vo.getY());     }         }    MapVO vo=(MapVO)lt_xy.get(i);    System.out.println(vo.getCity()+"  "+vo.getX()+ " "+vo.getY());  }else  {       MapVO vo=(MapVO)lt_xy.get(0);        System.out.println(vo.getCity()+"  "+vo.getX()+ " "+vo.getY());     } 

热点排行