while(key1.hasNext()){
while(key2.hasNext()){
if(zhida.isEmpty()){
String sop1=(String)key1.next();
String sop2=(String)key2.next();
zhida=zhida(sop1,sop2);
}
//内层break
if(!zhida.isEmpty()){
System.out.println("找到中途换乘"+zhida.size());
break;
}
}
//外层break
if(!zhida.isEmpty()){
System.out.println("break2"+zhida.size());
break;
}
}
找到一条可行的线路后,再开始查找起点到转乘点1的线路和转乘点2到重点的线路,并放到一个String中:
//第1站到第2站的车号
while(one2two.iterator().hasNext()){
System.out.println("step3");
nonstop2=(Nonstop)one2two.iterator().next();
busno1+=nonstop2.getBusno()+",";
}
//第3站到第4站的车号
while(three2four.iterator().hasNext()){
System.out.println("step4");
nonstop3=(Nonstop)three2four.iterator().next();
busno2+=nonstop3.getBusno()+",";
}
最后把起点到第一换乘站,第一换乘站到第二换乘站,第二换乘站到终点站3段线路连接到一个String中并将改String添加到集合中,最后返回该集合:
result="从"+stop1+"站出发,乘坐"+busno1+"到"+huanchengstop1+"站转"+nonstop.getBusno()+"到"+
huanchengstop2+"站转"+busno2+"到"+stop2;
twohg.add(result);
System.out.println("find one");
}catch(Exception e){
e.printStackTrace();
}
return twohg;
本算法采用了3个bean来保存3段路线的信息,每个bean中分别有start,end,busno3个属性,使得算法条理更加清晰化。
至此站站查询全部完成。
服务器对外接口(Servlet)的实现
本系统采用Servlet作为和手机通讯的接口,采用HTTP的应答机制,免去了自己写应答的麻烦,系统在执行了一次查询后在服务器的LOG中记录一次,同时数据库中负责记录查询次数的计数器加1。发送信息关键代码如下:
response.setContentType(CONTENT_TYPE);
DataOutputStream dos = new DataOutputStream(response.getOutputStream());
Iterator itr=coll.iterator() ;
while (itr.hasNext())
{
result = result+(String) itr.next() ;
首页 上一页 3 4 5 6 7 8 9 下一页 尾页 6/10/10
免费基于J2ME的公交查询系统的设计与实现(六)由毕业论文网(www.huoyuandh.com)会员上传。