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

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

}

你可能感兴趣的:(查询)