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()); }