• 石家庄地铁(李秦,王学云)


    bean包:

    package subway.bean;
    
    public class Subway {
        private int Id;
        private String Sname;
        private String Snum;
        
        private String Change;
        public Subway(int id2, String sname2, String snum2, String change2) 
        {
            this.Id=id2;
            this.Sname=sname2;
            this.Snum=snum2;
            this.Change=change2;
    
        }
        public String getSname() {
            return Sname;
        }
        public void setSname(String sname) {
            Sname = sname;
        }
        public String getSnum() {
            return Snum;
        }
        public void setSnum(String snum) {
            Snum = snum;
        }
        public int getId() {
            return Id;
        }
        public void setId(int id) {
            Id = id;
        }
        public String getChange() {
            return Change;
        }
        public void setChange(String change) {
            Change = change;
        }
    
    
    }

    dao包

    package subway.dao;
    
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    
    import subway.bean.Subway;
    import subway.util.BaseConnection;
    
    public class Dao {
        /*public static void main(String[] args)
        {
            String start;
            String end;
            Scanner in=new Scanner(System.in);
            start=in.next();
            end=in.next();
            System.out.println(start);
            System.out.println(end);
            List<Subway> list_1=list("first");
            List<Subway> list_2=list("second");
            List<Subway> list_3=list("third");
            List<Subway> list_4=list("fourth");
            List<Subway> list_5=list("fifth");
            List<Subway> list_6=list("sixth");
            List<Subway> change_1=findChange("first");
            List<Subway> change_2=findChange("second");
            List<Subway> change_3=findChange("third");
            List<Subway> change_4=findChange("fourth");
            List<Subway> change_5=findChange("fifth");
            List<Subway> change_6=findChange("sixth");
            List<Subway> listGather=Gather(list_1,list_2,list_3,list_4,list_5,list_6);
            List<Subway> listchange=Gather(change_1,change_2,change_3,change_4,change_5,change_6);
            List<Subway> Startlist=CheckStartEnd(start,listGather);
            List<Subway> Endlist=CheckStartEnd(end,listGather);
            List<List<Subway>> result=Judge(Endlist, Startlist, listGather, listchange);
            List<Subway> MinShort=new ArrayList();
            List<Subway> MinChange=new ArrayList();
            int shortline=0;
            for(int i=0;i<result.size()-1;i++)//ȷ�����·��
            {
                if(result.get(i).size()>result.get(i+1).size())
                {
                    shortline=i+1;
                }
            }
            MinShort=result.get(shortline);
            int[] shortchange=new int[result.size()];
            for(int i=0;i<result.size();i++)
            {
                shortchange[i]=0;
                for(int t=0;t<result.get(i).size();t++)
                {
                    if(result.get(i).get(t).getChange()!=null)
                    {
                        shortchange[i]++;
                    }
                }
            }
            int shortmin=0;
            for(int i=0;i<result.size()-1;i++)
            {
                if(shortchange[i]>shortchange[i+1])
                {
                    shortmin=i+1;
                }
            }
            MinChange=result.get(shortmin);
            System.out.println("�����·��");
            for(int i=0;i<MinShort.size();i++)
            {
                System.out.println(MinShort.get(i).getSname());
            }
            System.out.println("���ٻ��ˣ�");
            for(int i=0;i<MinChange.size();i++)
            {
                System.out.println(MinChange.get(i).getSname());
            }
        }*/
        public static List<Subway> list(String table) {
            String sql = "select * from " +table;
            List<Subway> list = new ArrayList<>();
            Connection conn = BaseConnection.getConnection();
            Statement state = null;
            ResultSet rs = null;
    
            try {
                state = conn.createStatement();
                rs = state.executeQuery(sql);
                Subway subway = null;
                while (rs.next()) {
                    
                    String Sname = rs.getString("Sname");
                    String Snum = rs.getString("Snum");
                    int Id = rs.getInt("Id");
                    String Change = rs.getString("Change1");
                    subway = new Subway(Id, Sname, Snum, Change);
                    list.add(subway);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                BaseConnection.close(rs, state, conn);
            }
            
            return list;
        }
        public static List<List<Subway>> Judge(List<Subway> Endlist,List<Subway> Startlist,List<Subway> listGather,List<Subway> listchange)
        {
            List<List<Subway>> result=new ArrayList();
            for(int k=0;k<Startlist.size();k++)
            {
                for(int h=0;h<Endlist.size();h++)
    //        if(Startlist.size()==1&&Endlist.size()==1)
            {
                Subway waystart=Startlist.get(k);
                Subway wayend=Endlist.get(h);
                if(waystart.getSnum().equals(wayend.getSnum()))//����վ
                {
                    List<Subway> num0=new ArrayList();
                    if(waystart.getId()>=wayend.getId())
                    {
                        for(int n=listGather.size()-1;n>=0;n--)
                        {
                            if(listGather.get(n).getSnum().equals(waystart.getSnum()))
                            {
                                if(listGather.get(n).getId()<=waystart.getId()&&listGather.get(n).getId()>=wayend.getId())
                                {
                                    num0.add(listGather.get(n));
                                }
                            }
                        }
                        result.add(num0);
                    }
                    if(waystart.getId()<wayend.getId())
                    {
                        for(int n=0;n<listGather.size();n++)
                        {
                            if(listGather.get(n).getSnum().equals(waystart.getSnum()))
                            {
                                if(listGather.get(n).getId()>=waystart.getId()&&listGather.get(n).getId()<=wayend.getId())
                                {
                                    num0.add(listGather.get(n));
                                }
                            }
                        }
                        result.add(num0);
                    }
                }
                for(int i=0;i<listchange.size();i++)
                {
                    if(listchange.get(i).getSnum().equals(waystart.getSnum()))
                    {
                        if(listchange.get(i).getChange().equals(wayend.getSnum()))//��վһ��
                        {
                            List<Subway> num1=new ArrayList();
                            for(int e1=0;e1<listchange.size();e1++)
                            {
                                if(listchange.get(i).getSname().equals(listchange.get(e1).getSname())&&!listchange.get(i).getSnum().equals(listchange.get(e1).getSnum()))//��û�վ�㻻վ�����·
                                {
                                    if(listchange.get(i).getId()>waystart.getId()&&listchange.get(e1).getId()<wayend.getId())
                                    {
                                        for(int n1=0;n1<listGather.size();n1++)
                                        {
                                            if(listGather.get(n1).getSnum().equals(waystart.getSnum()))
                                            {
                                                if(listGather.get(n1).getId()>=waystart.getId()&&listGather.get(n1).getId()<=listchange.get(i).getId())
                                                {
                                                    num1.add(listGather.get(n1));
                                                }
                                            }
                                        }
                                        for(int n1=0;n1<listGather.size();n1++)
                                        {
                                            if(listGather.get(n1).getSnum().equals(wayend.getSnum()))
                                            {
                                                if(listGather.get(n1).getId()>listchange.get(e1).getId()&&listGather.get(n1).getId()<=wayend.getId())
                                                {
                                                    num1.add(listGather.get(n1));
                                                }
                                            }
                                        }
                                        result.add(num1);
            
                                    }
                                    if(listchange.get(i).getId()<waystart.getId()&&listchange.get(e1).getId()<wayend.getId())
                                    {
                                        for(int n1=listGather.size()-1;n1>=0;n1--)
                                        {
                                            if(listGather.get(n1).getSnum().equals(waystart.getSnum()))
                                            {
                                                if(listGather.get(n1).getId()<=waystart.getId()&&listGather.get(n1).getId()>=listchange.get(i).getId())
                                                {
                                                    num1.add(listGather.get(n1));
                                                }
                                            }
                                        }
                                        for(int n1=0;n1<listGather.size();n1++)
                                        {
                                            if(listGather.get(n1).getSnum().equals(wayend.getSnum()))
                                            {
                                                if(listGather.get(n1).getId()>listchange.get(e1).getId()&&listGather.get(n1).getId()<=wayend.getId())
                                                {
                                                    num1.add(listGather.get(n1));
                                                }
                                                
                                            }
                                        }
                                        result.add(num1);
                                    }
                                    if(listchange.get(i).getId()<waystart.getId()&&listchange.get(e1).getId()>wayend.getId())
                                    {
                                        for(int n1=listGather.size()-1;n1>=0;n1--)
                                        {
                                            if(listGather.get(n1).getSnum().equals(waystart.getSnum()))
                                            {
                                                if(listGather.get(n1).getId()<=waystart.getId()&&listGather.get(n1).getId()>=listchange.get(i).getId())
                                                {
                                                    num1.add(listGather.get(n1));
                                                }
                                            }
                                        }
                                        for(int n1=listGather.size()-1;n1>=0;n1--)
                                        {
                                            if(listGather.get(n1).getSnum().equals(wayend.getSnum()))
                                            {
                                                if(listGather.get(n1).getId()<listchange.get(e1).getId()&&listGather.get(n1).getId()>=wayend.getId())
                                                {
                                                    num1.add(listGather.get(n1));
                                                }
                                                
                                            }
                                        }
                                        result.add(num1);
                                    }
                                    if(listchange.get(i).getId()>waystart.getId()&&listchange.get(e1).getId()>wayend.getId())
                                    {
                                        for(int n1=0;n1<listGather.size();n1++)
                                        {
                                            if(listGather.get(n1).getSnum().equals(waystart.getSnum()))
                                            {
                                                if(listGather.get(n1).getId()>=waystart.getId()&&listGather.get(n1).getId()<=listchange.get(i).getId())
                                                {
                                                    num1.add(listGather.get(n1));
                                                }
                                            }
                                        }
                                        for(int n1=listGather.size()-1;n1>=0;n1--)
                                        {
                                            if(listGather.get(n1).getSnum().equals(wayend.getSnum()))
                                            {
                                                if(listGather.get(n1).getId()<listchange.get(e1).getId()&&listGather.get(n1).getId()>=wayend.getId())
                                                {
                                                    num1.add(listGather.get(n1));
                                                }
                                                
                                            }
                                        }
                                        result.add(num1);
                                    }
                                }
                            }
                        }
                        if(!listchange.get(i).getChange().equals(wayend.getSnum()))//������
                        {
                            List<Subway> num2=new ArrayList();
                            for(int e1=0;e1<listchange.size();e1++)
                            {
                                if(listchange.get(i).getSname().equals(listchange.get(e1).getSname())&&!listchange.get(i).getSnum().equals(listchange.get(e1).getSnum()))//��ý���վ����һ����·
                                {
                                    for(int t1=0;t1<listchange.size();t1++)
                                    {
                                        if(listchange.get(e1).getSnum().equals(listchange.get(t1).getSnum())&&!listchange.get(e1).getSname().equals(listchange.get(t1).getSname()))//��û��ߺ�Ľ���վ
                                        {
                                            if(listchange.get(t1).getChange().equals(wayend.getSnum()))//ȷ������վλ��
                                            {
                                                for(int t2=0;t2<listchange.size();t2++)
                                                {
                                                    if(listchange.get(t1).getSname().equals(listchange.get(t2).getSname())&&!listchange.get(t1).getSnum().equals(listchange.get(t2).getSnum()))
                                                    {
                                                        if(listchange.get(i).getId()>waystart.getId()&&listchange.get(e1).getId()>listchange.get(t1).getId()&&listchange.get(t2).getId()>wayend.getId())
                                                            //> > >
                                                        {
                                                            num2=new ArrayList();
                                                            for(int n1=0;n1<listGather.size();n1++)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(waystart.getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()>=waystart.getId()&&listGather.get(n1).getId()<=listchange.get(i).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            for(int n1=listGather.size()-1;n1>=0;n1--)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(listchange.get(e1).getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()>=listchange.get(t1).getId()&&listGather.get(n1).getId()<listchange.get(e1).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            for(int n1=listGather.size()-1;n1>=0;n1--)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(listchange.get(t2).getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()>=wayend.getId()&&listGather.get(n1).getId()<listchange.get(t2).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            result.add(num2);                                                        System.out.println("");
                                                        }
                                                        if(listchange.get(i).getId()<waystart.getId()&&listchange.get(e1).getId()>listchange.get(t1).getId()&&listchange.get(t2).getId()>wayend.getId())
                                                            //< > >
                                                        {
                                                            num2=new ArrayList();
                                                            for(int n1=listGather.size()-1;n1>=0;n1--)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(waystart.getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()<=waystart.getId()&&listGather.get(n1).getId()>=listchange.get(i).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            for(int n1=listGather.size()-1;n1>=0;n1--)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(listchange.get(e1).getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()>=listchange.get(t1).getId()&&listGather.get(n1).getId()<listchange.get(e1).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            for(int n1=listGather.size()-1;n1>=0;n1--)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(listchange.get(t2).getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()>=wayend.getId()&&listGather.get(n1).getId()<listchange.get(t2).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            result.add(num2);                                                        System.out.println("");
                                                        }
                                                        if(listchange.get(i).getId()>waystart.getId()&&listchange.get(e1).getId()<listchange.get(t1).getId()&&listchange.get(t2).getId()>wayend.getId())
                                                            //> < >
                                                        {
                                                            num2=new ArrayList();
                                                            for(int n1=0;n1<listGather.size();n1++)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(waystart.getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()>=waystart.getId()&&listGather.get(n1).getId()<=listchange.get(i).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            for(int n1=0;n1<listGather.size();n1++)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(listchange.get(e1).getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()<=listchange.get(t1).getId()&&listGather.get(n1).getId()>listchange.get(e1).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            for(int n1=listGather.size()-1;n1>=0;n1--)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(listchange.get(t2).getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()>=wayend.getId()&&listGather.get(n1).getId()<listchange.get(t2).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            result.add(num2);                                                        System.out.println("");
                                                        }
                                                        if(listchange.get(i).getId()>waystart.getId()&&listchange.get(e1).getId()>listchange.get(t1).getId()&&listchange.get(t2).getId()<wayend.getId())
                                                            //> > <
                                                        {
                                                            num2=new ArrayList();
                                                            for(int n1=0;n1<listGather.size();n1++)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(waystart.getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()>=waystart.getId()&&listGather.get(n1).getId()<=listchange.get(i).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            for(int n1=listGather.size()-1;n1>=0;n1--)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(listchange.get(e1).getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()>=listchange.get(t1).getId()&&listGather.get(n1).getId()<listchange.get(e1).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            for(int n1=0;n1<listGather.size();n1++)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(listchange.get(t2).getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()<=wayend.getId()&&listGather.get(n1).getId()>listchange.get(t2).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            result.add(num2);                                                        System.out.println("");
                                                        }
                                                        if(listchange.get(i).getId()<waystart.getId()&&listchange.get(e1).getId()<listchange.get(t1).getId()&&listchange.get(t2).getId()>wayend.getId())
                                                            //< < >
                                                        {
                                                            num2=new ArrayList();
                                                            for(int n1=listGather.size()-1;n1>=0;n1--)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(waystart.getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()<=waystart.getId()&&listGather.get(n1).getId()>=listchange.get(i).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            for(int n1=0;n1<listGather.size();n1++)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(listchange.get(e1).getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()<=listchange.get(t1).getId()&&listGather.get(n1).getId()>listchange.get(e1).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            for(int n1=listGather.size()-1;n1>=0;n1--)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(listchange.get(t2).getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()>=wayend.getId()&&listGather.get(n1).getId()<listchange.get(t2).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            result.add(num2);                                                        System.out.println("");
                                                        }
                                                        if(listchange.get(i).getId()<waystart.getId()&&listchange.get(e1).getId()>listchange.get(t1).getId()&&listchange.get(t2).getId()<wayend.getId())
                                                            //< > <
                                                        {
                                                            num2=new ArrayList();
                                                            for(int n1=listGather.size()-1;n1>=0;n1--)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(waystart.getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()<=waystart.getId()&&listGather.get(n1).getId()>=listchange.get(i).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            for(int n1=listGather.size()-1;n1>=0;n1--)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(listchange.get(e1).getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()>=listchange.get(t1).getId()&&listGather.get(n1).getId()<listchange.get(e1).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            for(int n1=0;n1<listGather.size();n1++)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(listchange.get(t2).getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()<=wayend.getId()&&listGather.get(n1).getId()>listchange.get(t2).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            result.add(num2);                                                        System.out.println("");
                                                        }
                                                        if(listchange.get(i).getId()>waystart.getId()&&listchange.get(e1).getId()<listchange.get(t1).getId()&&listchange.get(t2).getId()<wayend.getId())
                                                            //> < <
                                                        {
                                                            num2=new ArrayList();
                                                            for(int n1=0;n1<listGather.size();n1++)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(waystart.getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()>=waystart.getId()&&listGather.get(n1).getId()<=listchange.get(i).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            for(int n1=0;n1<listGather.size();n1++)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(listchange.get(e1).getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()<=listchange.get(t1).getId()&&listGather.get(n1).getId()>listchange.get(e1).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            for(int n1=0;n1<listGather.size();n1++)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(listchange.get(t2).getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()<=wayend.getId()&&listGather.get(n1).getId()>listchange.get(t2).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            result.add(num2);                                                        System.out.println("");
                                                        }
                                                        if(listchange.get(i).getId()<waystart.getId()&&listchange.get(e1).getId()<listchange.get(t1).getId()&&listchange.get(t2).getId()<wayend.getId())
                                                            //< < <
                                                        {
                                                            num2=new ArrayList();
                                                            for(int n1=listGather.size()-1;n1>=0;n1--)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(waystart.getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()<=waystart.getId()&&listGather.get(n1).getId()>=listchange.get(i).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            for(int n1=0;n1<listGather.size();n1++)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(listchange.get(e1).getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()<=listchange.get(t1).getId()&&listGather.get(n1).getId()>listchange.get(e1).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            for(int n1=0;n1<listGather.size();n1++)
                                                            {
                                                                if(listGather.get(n1).getSnum().equals(listchange.get(t2).getSnum()))
                                                                {
                                                                    if(listGather.get(n1).getId()<wayend.getId()&&listGather.get(n1).getId()>listchange.get(t2).getId())
                                                                    {
                                                                        num2.add(listGather.get(n1));                                                                    System.out.print(listGather.get(n1).getSname()+"->");
                                                                    }
                                                                }
                                                            }
                                                            result.add(num2);
                                                        }
                                                        
                                                        
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            }
            return result;
        }
        public static List<Subway> CheckStartEnd(String startend,List<Subway> list)
        {
            Subway sub=null;
            List<Subway> StartEndlist=new ArrayList();
            for(int i=0;i<list.size();i++)
            {
                sub=list.get(i);
                if(sub.getSname().equals(startend))
                {
                    StartEndlist.add(sub);
                }
    
                
            }
            return StartEndlist;
        }
        @SuppressWarnings("null")
        public static List<Subway> Gather(List<Subway> list1,List<Subway> list2,List<Subway> list3
                ,List<Subway> list4,List<Subway> list5,List<Subway> list6)
        {
            List<Subway> list =new ArrayList();
            Subway sub=null;
            list.addAll(list1);
            list.addAll(list2);
            list.addAll(list3);
            list.addAll(list4);
            list.addAll(list5);
            list.addAll(list6);
            return list;
        }
        public static List<Subway> findChange(String table)
        {
            
            String sql = "select * from "+ table +" where Change1 is not null";
            List<Subway> list = new ArrayList<>();
            Connection conn = BaseConnection.getConnection();
            Statement state = null;
            ResultSet rs = null;
    
            try {
                state = conn.createStatement();
                rs = state.executeQuery(sql);
                Subway subway = null;
                while (rs.next()) {
                    int Id = rs.getInt("Id");
                    String Sname = rs.getString("Sname");
                    String Snum = rs.getString("Snum");
                    String Change1 = rs.getString("Change1");
                    subway = new Subway(Id, Sname, Snum, Change1);
                    list.add(subway);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                BaseConnection.close(rs, state, conn);
            }
            return list;
        }
    
    }

    servlet包

    package subway.servlet;
    
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.ServletException;
    //import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import subway.bean.Subway;
    import subway.dao.*;
    /**
     * Servlet implementation class Servlet
     */
    //@WebServlet("/Servlet")
    public class Servlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public Servlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
        {
            request.setCharacterEncoding("UTF-8");
            String start=request.getParameter("start");
            String end=request.getParameter("end");
            Dao dao=new Dao();
            System.out.println(start);
            System.out.println(end);
            List<Subway> list_1=dao.list("first");
            List<Subway> list_2=dao.list("second");
            List<Subway> list_3=dao.list("third");
            List<Subway> list_4=dao.list("fourth");
            List<Subway> list_5=dao.list("fifth");
            List<Subway> list_6=dao.list("sixth");
            List<Subway> change_1=dao.findChange("first");
            List<Subway> change_2=dao.findChange("second");
            List<Subway> change_3=dao.findChange("third");
            List<Subway> change_4=dao.findChange("fourth");
            List<Subway> change_5=dao.findChange("fifth");
            List<Subway> change_6=dao.findChange("sixth");
            List<Subway> listGather=dao.Gather(list_1,list_2,list_3,list_4,list_5,list_6);
            List<Subway> listchange=dao.Gather(change_1,change_2,change_3,change_4,change_5,change_6);
            List<Subway> Startlist=dao.CheckStartEnd(start,listGather);
            List<Subway> Endlist=dao.CheckStartEnd(end,listGather);
            List<List<Subway>> result=dao.Judge(Endlist, Startlist, listGather, listchange);
            List<Subway> MinShort=new ArrayList();
            List<Subway> MinChange=new ArrayList();
            int shortline=0;
            for(int i=0;i<result.size()-1;i++)//ȷ�����·��
            {
                if(result.get(i).size()>result.get(i+1).size())
                {
                    shortline=i+1;
                }
            }
            MinShort=result.get(shortline);
            int[] shortchange=new int[result.size()];
            for(int i=0;i<result.size();i++)
            {
                shortchange[i]=0;
                for(int t=0;t<result.get(i).size();t++)
                {
                    if(result.get(i).get(t).getChange()!=null)
                    {
                        shortchange[i]++;
                    }
                }
            }
            int shortmin=0;
            for(int i=0;i<result.size()-1;i++)
            {
                if(shortchange[i]>shortchange[i+1])
                {
                    shortmin=i+1;
                }
            }
            MinChange=result.get(shortmin);
            System.out.println("�����·��");
            for(int i=0;i<MinShort.size();i++)
            {
                System.out.println(MinShort.get(i).getSname());
            }
            System.out.println("���ٻ��ˣ�");
            for(int i=0;i<MinChange.size();i++)
            {
                System.out.println(MinChange.get(i).getSname());
            }
            request.setAttribute("MinChange", MinChange);
            request.setAttribute("MinShort", MinShort);
            request.getRequestDispatcher("find.jsp").forward(request,response);
    
                
            
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    
    }

    util包

    package subway.util;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    public class BaseConnection {
        public static String db_url = "jdbc:mysql://localhost:3306/subway1";
        public static String db_user = "root";
        public static String db_password = "root";
    
        public static Connection getConnection() {
            Connection conn = null;
            try {
                Class.forName("com.mysql.jdbc.Driver");
                conn = DriverManager.getConnection(db_url, db_user, db_password);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return conn;
        }
        
        public static void close(Statement state, Connection conn) {
            if(state!=null) {
                try {
                    state.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(conn!=null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        
        public static void close(ResultSet rs, Statement state, Connection conn) {
            if(rs!=null) {
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(state!=null) {
                try {
                    state.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(conn!=null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    
    }

    find.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
     <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>可控制图片放大缩小还原移动效果的JS网页图片查看器</title>
    <meta http-equiv="imagetoolbar" content="no">
    <style type="text/css">
        body
        {
            font-family: "Verdana" , "Arial" , "Helvetica" , "sans-serif";
            font-size: 12px;
            line-height: 180%;
        }
        td
        {
            font-size: 12px;
            line-height: 150%;
        }
    </style>
    <script language="JavaScript">
        drag = 0
        move = 0
     
        // 拖拽对象
        // 参见:http://blog.sina.com.cn/u/4702ecbe010007pe
        var ie = document.all;
        var nn6 = document.getElementById && !document.all;
        var isdrag = false;
        var y, x;
        var oDragObj;
     
        function moveMouse(e) {
            if (isdrag) {
                oDragObj.style.top = (nn6 ? nTY + e.clientY - y : nTY + event.clientY - y) + "px";
                oDragObj.style.left = (nn6 ? nTX + e.clientX - x : nTX + event.clientX - x) + "px";
                return false;
            }
        }
     
        function initDrag(e) {
            var oDragHandle = nn6 ? e.target : event.srcElement;
            var topElement = "HTML";
            while (oDragHandle.tagName != topElement && oDragHandle.className != "dragAble") {
                oDragHandle = nn6 ? oDragHandle.parentNode : oDragHandle.parentElement;
            }
            if (oDragHandle.className == "dragAble") {
                isdrag = true;
                oDragObj = oDragHandle;
                nTY = parseInt(oDragObj.style.top + 0);
                y = nn6 ? e.clientY : event.clientY;
                nTX = parseInt(oDragObj.style.left + 0);
                x = nn6 ? e.clientX : event.clientX;
                document.onmousemove = moveMouse;
                return false;
            }
        }
        document.onmousedown = initDrag;
        document.onmouseup = new Function("isdrag=false");
     
        
     
        function smallit() {
            var height1 = images1.height;
            var width1 = images1.width;
            images1.height = height1 / 1.2;
            images1.width = width1 / 1.2;
        }
     
        function bigit() {
            var height1 = images1.height;
            var width1 = images1.width;
            images1.height = height1 * 1.2;
            images1.width = width1 * 1.2;
        }
        function realsize() {
            images1.height = images2.height / 1.6; 
            images1.width = images2.width / 1.6;
            block1.style.left = 0;
            block1.style.top = 0;
     
        }
     
        window.onload = function () {
            var height1 = document.body.clientHeight;
            var width1 = document.body.clientWidth;
            images1.height = height1 ;
            images1.width = width1;
        }
     
     
     
    </script>
    
    <style type="text/css">
    
    td, a { font-size:12px; color:#000000 }
    #Layer1 { position:absolute; z-index:100; top: 10px;right: 5px;}
    #Layer2 { position:absolute; z-index:1; }
    
    .find{position: absolute;z-index: 10;font-size: 20;float:left}
    .show{position: absolute;z-index: 20;font-size: 20;float:left;top:200px}
    
    </style>
    </head>
    
    <body rightmargin="100" topmargin="0" marginwidth="0" marginheight="0" oncontextmenu="return false"
        ondragstart="return false" onselectstart="return false" onselect="document.selection.empty()"
        oncopy="document.selection.empty()" onbeforecopy="return false" onmouseup="document.selection.empty()"
        style="overflow-y: hidden; overflow-x: hidden;">
        <form action="${pageContext.request.contextPath}/Servlet" method="post">
        <div id="Layer1">
    
            <table border="0" cellspacing="2" cellpadding="5" >
               
                <tr>
                    <td>
                    </td>
                    <td>
                        <img src="image/real.png" width="30" height="30" style="cursor: hand" onclick="realsize();"
                            title="还原" alert="还原">
                    </td>
                   
                </tr>
                
                <tr>
                    <td>
                    </td>
                    <td>
                        <img src="image/big.png" width="30" height="30" style="cursor: hand" onclick="bigit();"
                            title="放大">
                    </td>
                    <td>
                    </td>
                </tr>
                <tr>
                    <td>
                    </td>
                    <td>
                        <img src="image/small.png" width="30" height="30" style="cursor: hand" onclick="smallit();"
                            title="缩小">
                    </td>
                    <td>
                    </td>
                </tr>
            </table>
        </div>
        <div id='hiddenPic' style='position: absolute; left: 0px; top: 0px;  0px; height: 0px;
            z-index: 1; visibility: hidden;'>
            <img name='images2' src='image/1.jpg' border='0'  />
        </div>
        <div id='block1' onmouseout='drag=0' onmouseover='dragObj=block1; drag=1;' style='z-index: 10;
            height: 0; left: 0px; position: absolute; top: 0px;  0' class="dragAble">
            <img name='images1' src='image/1.jpg' border='0' />
        </div>
        
        <div class="find">
                <h2 color="pink">
                    换乘查询
                </h2>
                起始站:<input type="text" style="cursor: hand" name="start" ><br><br>
                终点站:<input type="text" style="cursor: hand" name="end" ><br><br>
                &nbsp&nbsp<input type="submit" value="提交" style="cursor: hand" margin="center">
                &nbsp&nbsp <input type="reset" value="重置">
            </div>
           
        <div class="show">
               <table>
                <c:forEach items="${MinShort}" var="item">
                    <tr>
                        <td>${item.sname}</td>    
                        <td>${item.change}</td>                    
                    </tr>
                </c:forEach>
                </table>
        </div>
    </form>
    </body>
    
    </html>
  • 相关阅读:
    JTS相关资料和示例
    微信、支付宝支付那点事
    系统化全方位监控告警,这一篇足矣
    耶鲁大学研究创造了模拟人类认知的计算机芯片
    Docker孵化的5个开源项目
    图解数据中心水系统标准和架构(大全)
    React Native 项目整合 CodePush 全然指南
    1分钟了解MyISAM与InnoDB的索引差异
    Google I/O 官方应用中的动效设计
    为了完毕月入三万的目标,我都做了哪些准备?
  • 原文地址:https://www.cnblogs.com/lq13035130506/p/10652422.html
Copyright © 2020-2023  润新知