车次查询(可转发)简单版

车次查询(可中转)简单版package com.szl.carimport java.util.Listpublic class Car{public static vola

车次查询(可中转)简单版

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