// 对list序列进行排序 首站->终点站 private List<StationDistrictRelation> sortStations(List<StationDistrictRelation> list) { List<StationDistrictRelation> sortedList = new ArrayList<StationDistrictRelation>(); if ((list == null) || (list.size() == 0)) { return null; } StationDistrictRelation sdr = new StationDistrictRelation(); int listLength = list.size(); String preStationName = ""; // 查找区段内首站,即第一个车站 for (int i = 0; i < listLength; i++) { sdr = list.get(i); String stationName = sdr.getStation_name(); if (stationName.equalsIgnoreCase(sdr.getPrestation_name())) { preStationName = stationName; sortedList.add(sdr); break; } } // 没有找到首站 if (preStationName.length() == 0) { return null; } // 依据首站 依次查找区段内其他站 for (int i = 0; i < listLength; i++) { sdr = list.get(i); if (sdr.getStation_name().equalsIgnoreCase(sdr.getPrestation_name())) { // 首站 continue; } for (int j = 0; j < listLength; j++) { sdr = list.get(j); String stationName = sdr.getStation_name(); if (stationName.equalsIgnoreCase(sdr.getPrestation_name())) { // 首站 continue; } else // 非首站 if (preStationName.equalsIgnoreCase(sdr.getPrestation_name())) { preStationName = stationName; sortedList.add(sdr); } } } return sortedList; }