2023/3/27每日随笔

发布时间 2023-03-28 00:10:35作者: 实名吓我一跳

Andriod的数据库建立成功,可进行增删改查,实现了数据库的创建,添加数据,删除全部数据的一系列操作。

完成了地铁查询系统的App实现

思路:

由于sqlite数据库我实现不了实例化,就通过建立表,插入数据来实现,调用这个方法是通过管理员来实现,来通过调用方法挨个加入,后调用方法进行操作

 

public void AddShortline(SQLiteDatabase sqLiteDatabase) {
ContentValues values = new ContentValues();
values.put("id",1);
values.put("name","福泽");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",2);
values.put("name","园博园");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",3);
values.put("name","商务中心");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",4);
values.put("name","会展中心");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",5);
values.put("name","东庄");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",6);
values.put("name","西庄");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",7);
values.put("name","洨河大道");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",8);
values.put("name","南村");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",9);
values.put("name","石家庄东站");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",10);
values.put("name","火炬广场");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",11);
values.put("name","留村");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",12);
values.put("name","白佛");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",13);
values.put("name","朝晖桥");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",14);
values.put("name","谈固");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",15);
values.put("name","北宋");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",16);
values.put("name","体育场");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",17);
values.put("name","博物馆");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",18);
values.put("name","北国商城");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",19);
values.put("name","平安大街");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",20);
values.put("name","解放广场");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",21);
values.put("name","新百广场");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",22);
values.put("name","烈士陵园");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",23);
values.put("name","和平医院");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",24);
values.put("name","长城桥");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",25);
values.put("name","时光街");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",26);
values.put("name","西王");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",27);
values.put("name","柳辛庄");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",28);
values.put("name","庄窠·铁道大学");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",29);
values.put("name","义堂");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",30);
values.put("name","建和桥");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",31);
values.put("name","长安公园");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",32);
values.put("name","裕华路");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",33);
values.put("name","槐中路");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",34);
values.put("name","欧韵公园");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",35);
values.put("name","元村");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",36);
values.put("name","石家庄站");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",37);
values.put("name","塔坛");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",38);
values.put("name","仓丰路留村");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",39);
values.put("name","西三庄");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",40);
values.put("name","高柱");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",41);
values.put("name","柏林庄");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",42);
values.put("name","市庄");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",43);
values.put("name","市二中");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",44);
values.put("name","东里");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",45);
values.put("name","槐安桥");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",46);
values.put("name","西三教");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",47);
values.put("name","汇通路");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",48);
values.put("name","孙村");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",49);
values.put("name","塔冢");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",50);
values.put("name","东王");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",51);
values.put("name","南王");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",52);
values.put("name","位同");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",53);
values.put("name","东二环南路");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",54);
values.put("name","西仰院");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",55);
values.put("name","中仰陵");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",56);
values.put("name","南豆");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",57);
values.put("name","太行南大街");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",58);
values.put("name","乐乡");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",59);
values.put("name","南位");
sqLiteDatabase.insert("ShortLine",null,values);
values.put("id",60);
values.put("name","嘉华路");
sqLiteDatabase.insert("ShortLine",null,values);
//sqLiteDatabase.close();
}

public void Addsubway(SQLiteDatabase sqLiteDatabase) {
ContentValues values = new ContentValues();
values.put("id",1);
values.put("line_id",1);
values.put("line_num",1);
values.put("stop_name","福泽");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",2);
values.put("line_id",1);
values.put("line_num",2);
values.put("stop_name","园博园");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",3);
values.put("line_id",1);
values.put("line_num",3);
values.put("stop_name","商务中心");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",4);
values.put("line_id",1);
values.put("line_num",4);
values.put("stop_name","会展中心");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",5);
values.put("line_id",1);
values.put("line_num",5);
values.put("stop_name","东庄");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",6);
values.put("line_id",1);
values.put("line_num",6);
values.put("stop_name","西庄");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",7);
values.put("line_id",1);
values.put("line_num",7);
values.put("stop_name","洨河大道");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",8);
values.put("line_id",1);
values.put("line_num",8);
values.put("stop_name","南村");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",9);
values.put("line_id",1);
values.put("line_num",9);
values.put("stop_name","石家庄东站");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",10);
values.put("line_id",1);
values.put("line_num",10);
values.put("stop_name","火炬广场");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",11);
values.put("line_id",1);
values.put("line_num",11);
values.put("stop_name","留村");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",12);
values.put("line_id",1);
values.put("line_num",12);
values.put("stop_name","白佛");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",13);
values.put("line_id",1);
values.put("line_num",13);
values.put("stop_name","朝晖桥");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",14);
values.put("line_id",1);
values.put("line_num",14);
values.put("stop_name","谈固");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",15);
values.put("line_id",1);
values.put("line_num",15);
values.put("stop_name","北宋");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",16);
values.put("line_id",1);
values.put("line_num",16);
values.put("stop_name","体育场");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",17);
values.put("line_id",1);
values.put("line_num",17);
values.put("stop_name","博物馆");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",18);
values.put("line_id",1);
values.put("line_num",18);
values.put("stop_name","北国商城");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",19);
values.put("line_id",1);
values.put("line_num",19);
values.put("stop_name","平安大街");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",20);
values.put("line_id",1);
values.put("line_num",20);
values.put("stop_name","解放广场");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",21);
values.put("line_id",1);
values.put("line_num",21);
values.put("stop_name","新百广场");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",22);
values.put("line_id",1);
values.put("line_num",22);
values.put("stop_name","烈士陵园");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",23);
values.put("line_id",1);
values.put("line_num",23);
values.put("stop_name","和平医院");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",24);
values.put("line_id",1);
values.put("line_num",24);
values.put("stop_name","长城桥");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",25);
values.put("line_id",1);
values.put("line_num",25);
values.put("stop_name","时光街");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",26);
values.put("line_id",1);
values.put("line_num",26);
values.put("stop_name","西王");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",27);
values.put("line_id",2);
values.put("line_num",1);
values.put("stop_name","柳辛庄");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",28);
values.put("line_id",2);
values.put("line_num",2);
values.put("stop_name","庄窠·铁道大学");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",29);
values.put("line_id",2);
values.put("line_num",3);
values.put("stop_name","义堂");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",30);
values.put("line_id",2);
values.put("line_num",4);
values.put("stop_name","建和桥");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",31);
values.put("line_id",2);
values.put("line_num",5);
values.put("stop_name","长安公园");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",32);
values.put("line_id",2);
values.put("line_num",6);
values.put("stop_name","北国商城");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",33);
values.put("line_id",2);
values.put("line_num",7);
values.put("stop_name","裕华路");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",34);
values.put("line_id",2);
values.put("line_num",8);
values.put("stop_name","槐中路");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",35);
values.put("line_id",2);
values.put("line_num",9);
values.put("stop_name","欧韵公园");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",36);
values.put("line_id",2);
values.put("line_num",10);
values.put("stop_name","元村");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",37);
values.put("line_id",2);
values.put("line_num",11);
values.put("stop_name","石家庄站");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",38);
values.put("line_id",2);
values.put("line_num",12);
values.put("stop_name","塔坛");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",39);
values.put("line_id",2);
values.put("line_num",13);
values.put("stop_name","仓丰路留村");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",40);
values.put("line_id",3);
values.put("line_num",1);
values.put("stop_name","西三庄");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",41);
values.put("line_id",3);
values.put("line_num",2);
values.put("stop_name","高柱");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",42);
values.put("line_id",3);
values.put("line_num",3);
values.put("stop_name","柏林庄");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",43);
values.put("line_id",3);
values.put("line_num",4);
values.put("stop_name","市庄");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",44);
values.put("line_id",3);
values.put("line_num",5);
values.put("stop_name","市二中");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",45);
values.put("line_id",3);
values.put("line_num",6);
values.put("stop_name","新百广场");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",46);
values.put("line_id",3);
values.put("line_num",7);
values.put("stop_name","东里");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",47);
values.put("line_id",3);
values.put("line_num",8);
values.put("stop_name","槐安桥");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",48);
values.put("line_id",3);
values.put("line_num",9);
values.put("stop_name","西三教");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",49);
values.put("line_id",3);
values.put("line_num",10);
values.put("stop_name","石家庄站");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",50);
values.put("line_id",3);
values.put("line_num",11);
values.put("stop_name","汇通路");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",51);
values.put("line_id",3);
values.put("line_num",12);
values.put("stop_name","孙村");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",52);
values.put("line_id",3);
values.put("line_num",13);
values.put("stop_name","塔冢");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",53);
values.put("line_id",3);
values.put("line_num",14);
values.put("stop_name","东王");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",54);
values.put("line_id",3);
values.put("line_num",15);
values.put("stop_name","南王");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",55);
values.put("line_id",3);
values.put("line_num",16);
values.put("stop_name","位同");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",56);
values.put("line_id",3);
values.put("line_num",17);
values.put("stop_name","东二环南路");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",57);
values.put("line_id",3);
values.put("line_num",18);
values.put("stop_name","西仰院");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",58);
values.put("line_id",3);
values.put("line_num",19);
values.put("stop_name","中仰陵");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",59);
values.put("line_id",3);
values.put("line_num",20);
values.put("stop_name","南豆");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",60);
values.put("line_id",3);
values.put("line_num",21);
values.put("stop_name","太行南大街");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",61);
values.put("line_id",3);
values.put("line_num",22);
values.put("stop_name","乐享");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",62);
values.put("line_id",2);
values.put("line_num",14);
values.put("stop_name","南位");
sqLiteDatabase.insert("Subway",null,values);
values.put("id",63);
values.put("line_id",2);
values.put("line_num",15);
values.put("stop_name","嘉华路");
sqLiteDatabase.insert("Subway",null,values);
//sqLiteDatabase.close();
}

public void Addline(SQLiteDatabase sqLiteDatabase) {
ContentValues values = new ContentValues();
values.put("line1",1);
values.put("line2",2);
sqLiteDatabase.insert("line",null,values);
values.put("line1",2);
values.put("line2",3);
sqLiteDatabase.insert("line",null,values);
values.put("line1",3);
values.put("line2",4);
sqLiteDatabase.insert("line",null,values);
values.put("line1",4);
values.put("line2",5);
sqLiteDatabase.insert("line",null,values);
values.put("line1",5);
values.put("line2",6);
sqLiteDatabase.insert("line",null,values);
values.put("line1",6);
values.put("line2",7);
sqLiteDatabase.insert("line",null,values);
values.put("line1",7);
values.put("line2",8);
sqLiteDatabase.insert("line",null,values);
values.put("line1",8);
values.put("line2",9);
sqLiteDatabase.insert("line",null,values);
values.put("line1",9);
values.put("line2",10);
sqLiteDatabase.insert("line",null,values);
values.put("line1",10);
values.put("line2",11);
sqLiteDatabase.insert("line",null,values);
values.put("line1",11);
values.put("line2",12);
sqLiteDatabase.insert("line",null,values);
values.put("line1",12);
values.put("line2",13);
sqLiteDatabase.insert("line",null,values);
values.put("line1",13);
values.put("line2",14);
sqLiteDatabase.insert("line",null,values);
values.put("line1",14);
values.put("line2",15);
sqLiteDatabase.insert("line",null,values);
values.put("line1",15);
values.put("line2",16);
sqLiteDatabase.insert("line",null,values);
values.put("line1",16);
values.put("line2",17);
sqLiteDatabase.insert("line",null,values);
values.put("line1",17);
values.put("line2",18);
sqLiteDatabase.insert("line",null,values);
values.put("line1",18);
values.put("line2",19);
sqLiteDatabase.insert("line",null,values);
values.put("line1",18);
values.put("line2",31);
sqLiteDatabase.insert("line",null,values);
values.put("line1",18);
values.put("line2",32);
sqLiteDatabase.insert("line",null,values);
values.put("line1",19);
values.put("line2",20);
sqLiteDatabase.insert("line",null,values);
values.put("line1",20);
values.put("line2",21);
sqLiteDatabase.insert("line",null,values);
values.put("line1",21);
values.put("line2",22);
sqLiteDatabase.insert("line",null,values);
values.put("line1",21);
values.put("line2",43);
sqLiteDatabase.insert("line",null,values);
values.put("line1",21);
values.put("line2",44);
sqLiteDatabase.insert("line",null,values);
values.put("line1",22);
values.put("line2",23);
sqLiteDatabase.insert("line",null,values);
values.put("line1",23);
values.put("line2",24);
sqLiteDatabase.insert("line",null,values);
values.put("line1",24);
values.put("line2",25);
sqLiteDatabase.insert("line",null,values);
values.put("line1",25);
values.put("line2",26);
sqLiteDatabase.insert("line",null,values);
values.put("line1",27);
values.put("line2",28);
sqLiteDatabase.insert("line",null,values);
values.put("line1",28);
values.put("line2",29);
sqLiteDatabase.insert("line",null,values);
values.put("line1",29);
values.put("line2",30);
sqLiteDatabase.insert("line",null,values);
values.put("line1",30);
values.put("line2",31);
sqLiteDatabase.insert("line",null,values);
values.put("line1",32);
values.put("line2",33);
sqLiteDatabase.insert("line",null,values);
values.put("line1",33);
values.put("line2",34);
sqLiteDatabase.insert("line",null,values);
values.put("line1",34);
values.put("line2",35);
sqLiteDatabase.insert("line",null,values);
values.put("line1",35);
values.put("line2",36);
sqLiteDatabase.insert("line",null,values);
values.put("line1",36);
values.put("line2",37);
sqLiteDatabase.insert("line",null,values);
values.put("line1",36);
values.put("line2",46);
sqLiteDatabase.insert("line",null,values);
values.put("line1",36);
values.put("line2",47);
sqLiteDatabase.insert("line",null,values);
values.put("line1",37);
values.put("line2",38);
sqLiteDatabase.insert("line",null,values);
values.put("line1",38);
values.put("line2",59);
sqLiteDatabase.insert("line",null,values);
values.put("line1",59);
values.put("line2",60);
sqLiteDatabase.insert("line",null,values);
values.put("line1",39);
values.put("line2",40);
sqLiteDatabase.insert("line",null,values);
values.put("line1",40);
values.put("line2",41);
sqLiteDatabase.insert("line",null,values);
values.put("line1",41);
values.put("line2",42);
sqLiteDatabase.insert("line",null,values);
values.put("line1",42);
values.put("line2",43);
sqLiteDatabase.insert("line",null,values);
values.put("line1",44);
values.put("line2",45);
sqLiteDatabase.insert("line",null,values);
values.put("line1",45);
values.put("line2",46);
sqLiteDatabase.insert("line",null,values);
values.put("line1",47);
values.put("line2",48);
sqLiteDatabase.insert("line",null,values);
values.put("line1",48);
values.put("line2",49);
sqLiteDatabase.insert("line",null,values);
values.put("line1",49);
values.put("line2",50);
sqLiteDatabase.insert("line",null,values);
values.put("line1",50);
values.put("line2",51);
sqLiteDatabase.insert("line",null,values);
values.put("line1",52);
values.put("line2",53);
sqLiteDatabase.insert("line",null,values);
values.put("line1",53);
values.put("line2",54);
sqLiteDatabase.insert("line",null,values);
values.put("line1",54);
values.put("line2",55);
sqLiteDatabase.insert("line",null,values);
values.put("line1",56);
values.put("line2",57);
sqLiteDatabase.insert("line",null,values);
values.put("line1",57);
values.put("line2",58);
sqLiteDatabase.insert("line",null,values);
values.put("line1",51);
values.put("line2",52);
sqLiteDatabase.insert("line",null,values);
values.put("line1",55);
values.put("line2",56);
sqLiteDatabase.insert("line",null,values);
//sqLiteDatabase.close();
}
}
功能:
加入数据后:
线路查询:
public List<Subway> LineQuery(SQLiteDatabase sqLiteDatabase, int line) {
System.out.println("line = " + line);
Cursor cursor = sqLiteDatabase.query("Subway",null,"line_id = ?",new String[]{String.valueOf(line)},null,null,null);
List<Subway> list = new ArrayList<Subway>();
while (cursor.moveToNext())
{
int id =cursor.getInt(0);
int line_id =cursor.getInt(1);
int line_num =cursor.getInt(2);
String stop_name = cursor.getString(3);
list.add(new Subway(id,line_id,line_num,stop_name));
}
cursor.close();
//sqLiteDatabase.close();
return list;
}
站点查询:
public List<Subway> StationQuery(SQLiteDatabase sqLiteDatabase, String name) {
Cursor cursor = sqLiteDatabase.query("Subway",null,"stop_name = ?",new String[]{name},null,null,null);
List<Subway> list = new ArrayList<Subway>();
while (cursor.moveToNext())
{
int id =cursor.getInt(0);
int line_id = cursor.getInt(1);
int line_num = cursor.getInt(2);
String stop_name = cursor.getString(3);
list.add(new Subway(id,line_id,line_num,stop_name));
}
cursor.close();
//sqLiteDatabase.close();
return list;
}
最短路径:
利用迪杰斯特拉进行修改:
public class ShortistQuery extends AppCompatActivity {
EditText Begin_EditText,End_EditText;
Button BEquery_Button;
TextView BEquery_TextView;
//==========================================
private static String Endstop = "";
private int[][] matrix ;
private String[] vertexes;
private SQLiteDatabase sqLiteDatabase;
private static List<Line> lines = new ArrayList<Line>();
private static String Line = "";
private int MAX_WEIGHT = Integer.MAX_VALUE;
private static List<ShortLine> shortLines = new ArrayList<ShortLine>();
private void createGraph2(int index)
{
matrix = new int[index][index];
for (int i = 0; i < index; i++) {
for (int j = 0; j < index; j++) {
matrix[i][j] = Integer.MAX_VALUE;
}
}
vertexes = new String[index];
System.out.println("lines = " + lines);
for (Line line : lines) {
// System.out.println("line.getLine1() = " + ((line.getLine1() - 1)));
// System.out.println("line.getLine2() = " + ((line.getLine2() - 1)));
matrix[line.getLine1() - 1][line.getLine2() - 1] = 1;
matrix[line.getLine2() - 1][line.getLine1() - 1] = 1;
}
System.out.println("shortLines = " + shortLines);
int count = 0;
for (ShortLine shortLine : shortLines) {
vertexes[count++] = shortLine.getName();
// System.out.println(shortLine.getName());
}
}
public void dijkstra(int vs)
{
vs = vs - 1;
// flag[i]=true表示"顶点vs"到"顶点i"的最短路径已成功获取
boolean[] flag = new boolean[vertexes.length];
// U则是记录还未求出最短路径的顶点(以及该顶点到起点s的距离),与 flag配合使用,flag[i] == true 表示U中i顶点已被移除
int[] U = new int[vertexes.length];
// 前驱顶点数组,即,prev[i]的值是"顶点vs"到"顶点i"的最短路径所经历的全部顶点中,位于"顶点i"之前的那个顶点。
int[] prev = new int[vertexes.length];
// S的作用是记录已求出最短路径的顶点
String[] S = new String[vertexes.length];

// 步骤一:初始时,S中只有起点vs;U中是除vs之外的顶点,并且U中顶点的路径是"起点vs到该顶点的路径"。
for (int i = 0; i < vertexes.length; i++) {
flag[i] = false; // 顶点i的最短路径还没获取到。
U[i] = matrix[vs][i]; // 顶点i与顶点vs的初始距离为"顶点vs"到"顶点i"的权。也就是邻接矩阵vs行的数据。
prev[i] = 0; //顶点i的前驱顶点为0
}
// 将vs从U中“移除”(U与flag配合使用)
flag[vs] = true;
U[vs] = 0;
// 将vs顶点加入S
S[0] = vertexes[vs];
// 步骤一结束
//步骤四:重复步骤二三,直到遍历完所有顶点。
// 遍历vertexes.length-1次;每次找出一个顶点的最短路径。
int k = 0;
for (int i = 1; i < vertexes.length; i++)
{
// 步骤二:从U中找出路径最短的顶点,并将其加入到S中(如果vs顶点到x顶点还有更短的路径的话,那么
// 必然会有一个y顶点到vs顶点的路径比前者更短且没有加入S中
// 所以,U中路径最短顶点的路径就是该顶点的最短路径)
// 即,在未获取最短路径的顶点中,找到离vs最近的顶点(k)。
int min = MAX_WEIGHT;
for (int j = 0; j < vertexes.length; j++)
{
if (flag[j] == false && U[j] < min)
{
min = U[j];
k = j;
}
}
//将k放入S中
S[i] = vertexes[k];
//步骤二结束
//步骤三:更新U中的顶点和顶点对应的路径
//标记"顶点k"为已经获取到最短路径(更新U中的顶点,即将k顶点对应的flag标记为true)
flag[k] = true;

//修正当前最短路径和前驱顶点(更新U中剩余顶点对应的路径)
//即,当已经"顶点k的最短路径"之后,更新"未获取最短路径的顶点的最短路径和前驱顶点"。
for (int j = 0; j < vertexes.length; j++)
{
//以k顶点所在位置连线其他顶点,判断其他顶点经过最短路径顶点k到达vs顶点是否小于目前的最短路径,是,更新入U,不是,不做处理
int tmp = (matrix[k][j] == MAX_WEIGHT ? MAX_WEIGHT : (min + matrix[k][j]));
if (flag[j] == false && (tmp < U[j]))
{
U[j] = tmp;
//更新 j顶点的最短路径前驱顶点为k
prev[j] = k;
}
}
//步骤三结束
}
//步骤四结束

// 打印dijkstra最短路径的结果
System.out.println("起始顶点:" + vertexes[vs]);
for (int i = 0; i < vertexes.length; i++)
{
//System.out.println(Endstop);
if (vertexes[i].equals(Endstop)) {
Line += vertexes[vs] + "->";
//System.out.print("最短路径(" + vertexes[vs] + "," + vertexes[i] + "):" + U[i] + " ");
List<String> path = new ArrayList<>();
int j = i;
while (true) {
path.add(vertexes[j]);

if (j == 0)
break;

j = prev[j];
}

for (int x = path.size() - 2; x >= 0; x--) {
if (x == 0) {
Line += path.get(x);
//System.out.println(path.get(x));
} else {
Line += path.get(x);
Line += "->";
// System.out.print(path.get(x) + "->");
}
}

}
}

}

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_shortist_query);
Begin_EditText = findViewById(R.id.Begin_EditText);
End_EditText = findViewById(R.id.End_EditText);
BEquery_Button = findViewById(R.id.BEquery_Button);
BEquery_TextView = findViewById(R.id.BEquery_TextView);
BEquery_Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String begin = Begin_EditText.getText().toString();
String end = End_EditText.getText().toString();
System.out.println("begin = " + begin );
System.out.println("end = " + end);
Subwaydatabase subwaydatabase = new Subwaydatabase(ShortistQuery.this);
sqLiteDatabase = subwaydatabase.getReadableDatabase();
sqLiteDatabase = subwaydatabase.getWritableDatabase();
int id = subwaydatabase.NametoId(sqLiteDatabase,begin);
lines = subwaydatabase.find(sqLiteDatabase);
// System.out.println("lines = " + lines);
shortLines = subwaydatabase.getAll(sqLiteDatabase);
System.out.println("id = " + id );
ShortistQuery dij = new ShortistQuery();
Endstop = end;
System.out.println("Endstop = "+Endstop);
dij.createGraph2(60);
dij.dijkstra(id);
System.out.println(Line);
BEquery_TextView.setText(Line);
Line ="";
}
});
}
实现页面: