package com.szl.car; import java.util.List; public class Car { public static volatile int count = 0; private int id; private List<String> checi; private String type; public Car(List<String> checi,String type) { super(); this.id = count++; this.checi = checi; this.type = type; } public int getId() { return id; } public List<String> getCheci() { return checi; } public String getType() { return type; } }
package com.szl.car; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub List<String> c1 = Arrays.asList("南京南","全椒","肥东","合肥","六安","金寨","红安西","武昌"); List<String> c2 = Arrays.asList("北京西","武昌","常德","张家界"); List<String> c3 = Arrays.asList("南京南","武昌","常德","张家界"); Car car1 = new Car(c1, "K"); Car car2 = new Car(c2, "K"); Car car3 = new Car(c3, "K"); List<Car> data = new ArrayList<Car>(); data.add(car1); data.add(car2); //data.add(car3); List<Car> findData = find(data, "南京", "常德"); for (Car car : findData) { System.out.println(car.getId()+" -> "+car.getCheci()); } } public static List<Car> find(List<Car> data,String source,String target) { List<Car> f1 = new ArrayList<Car>(); List<Car> d1 = new ArrayList<Car>(); List<Car> returnData = new ArrayList<Car>(); for (Car car : data) { int count = 0; List<String> cc = car.getCheci(); if(contains(cc,source)) { count =1; } if(contains(cc,target)) { if(count==1) { count=3; } else { count=2; } } if(count==1) { f1.add(car); } else if(count == 2) { d1.add(car); } else if(count == 3) { returnData.add(car); } } if(returnData.size()<=0) { for (Car fcar : f1) { for (String zd : fcar.getCheci()) { for (Car dcar : d1) { for (String zd2 : dcar.getCheci()) { if(zd.equals(zd2)) { returnData.add(fcar); returnData.add(dcar); } } } } } } return returnData; } public static boolean contains(List<String> date,String str) { boolean flag = false; for (String zd : date) { if(zd.contains(str)) { flag = true; break; } } return flag; } }