package Aufgaben;
import java.util.*;
import java.io.*;
import java.util.Arrays;
import java.lang.*;


class ANewPolitiker

{
    private String name;
    private String amtsBeginn;
    private String amtsEnde;
    private String amtsBezeichnung;
    
    public ANewPolitiker (String name ,String amtsBeginn, String amtsEnde, String amtsBezeichnung)
    {
        this.name = name;
        this.amtsBeginn = amtsBeginn;
        this.amtsEnde = amtsEnde;
        this.amtsBezeichnung = amtsBezeichnung;
    }
    
    public void setName ( String name )
    {
        this.name = name;
    }
    
    public String getName ()
    {
        return name;
    }
    
    public void setAmtsBeginn( String amtsBeginn )
    {
        this.amtsBeginn = amtsBeginn;
    }
    
    public String getAmtsBeginn ()
    {
        return amtsBeginn;
    }
    
    public void setAmtsEnde(String amtsEnde )
    {
        this.amtsEnde = amtsEnde;
    }
    
    public String getAmtsEnde ()
    {
        return amtsEnde;
    }
    
    public void setAmtsBezeichnung( String amtsBezeichnung )
    {
        this.amtsBezeichnung = amtsBezeichnung;
    }
    
    public String getAmtsBezeichnung ()
    {
        return amtsBezeichnung;
    }
    
}

public class ComparatorTest1 
{
    public static void main (String[] args) throws Exception
    {
        ANewPolitiker np1 = new ANewPolitiker("Johannes Rau","1999","2004","Bundespraeident");
        ANewPolitiker np2 = new ANewPolitiker("Konrad Adenauer" ,"1949","1963","Bundeskanzler");
        ANewPolitiker np3 = new ANewPolitiker("Heinrich Lueke","1959","1969","Bundespraeident");
        ANewPolitiker np4 = new ANewPolitiker("Willy Brandt","1969","1974","Bundeskanzler");
        ANewPolitiker np5 = new ANewPolitiker("Helmut Kohl","1982","1998","Bundeskanzler");
        ANewPolitiker np6 = new ANewPolitiker("Gerhard Schraeer","1998","2005","Bundeskanzler");
        ANewPolitiker np7 = new ANewPolitiker("Theodor Heuss","1949","1959","Bundespraeident");
        ANewPolitiker np8 = new ANewPolitiker("Richard von Weizsueker","1984","1994","Bundespraeident");
        ANewPolitiker np9 = new ANewPolitiker("Gustav Heinemann","1969","1974","Bundespraeident");
        ANewPolitiker np10 = new ANewPolitiker("Walter Scheel","1974","1979","Bundespraeident");
        ANewPolitiker np11 = new ANewPolitiker("Kurt Georg Kiesinger","1966","1969","Bundeskanzler");
        ANewPolitiker np12 = new ANewPolitiker("Karl Carstens","1979","1984","Bundespraeident");
        ANewPolitiker np13 = new ANewPolitiker("Helmut Schmidt","1974","1982","Bundeskanzler");
        ANewPolitiker np14 = new ANewPolitiker("Roman Herzog","1994","1999","Bundespraeident");
        ANewPolitiker np15 = new ANewPolitiker("Ludwig Erhard","1963","1966","Bundeskanzler");
        
        ANewPolitiker []Politikers = new ANewPolitiker[] {np1,np2,np3,np4,np5,np6,np7,np8,np9,np10,np11,np12,np13,np14,np15};
        
        Vector v1 = new Vector();
        Vector v2 = new Vector();
        
        //Verteien von Bundespraeident und Bundeskanzler
        
        for(int i=0;i<Politikers.length;i++)
        {
            ANewPolitiker np = Politikers[i];
            if("Bundespraeident".equals(np.getAmtsBezeichnung()))
            {
                v1.add(np);
                
            }
            else
            {
                v2.add(np);
                
            }
        }
        //Realisierung von inhaber eines bestimmten Amtes in chronologischer Reihenfolge
        
        System.out.println("inhaber eines bestimmten Amtes in chronologischer Reihenfolge");
         
        Comparator DurchChronologie = new Comparator() {

            public int compare(Object erstPolitiker, Object zweitPolitiker) 
            {

                ANewPolitiker b1 = (ANewPolitiker) erstPolitiker;
                ANewPolitiker b2 = (ANewPolitiker) zweitPolitiker;

                return (b1.getAmtsBeginn().hashCode() - b2.getAmtsBeginn().hashCode());
            }
        };
        
         Collections.sort(v1, DurchChronologie);
         Collections.sort(v2, DurchChronologie);
         
         LinkedListTest llt= new LinkedListTest();
         llt.einfuegen(0, "Bundeskanzler");
         llt.einfuegen(1, "Bundespraeident");
         llt.einfuegen(1, v2);
         llt.einfuegen(3, v1);
        
         llt.systemOutPrintln(0);
         for(Object obj : v2)
         {
            ANewPolitiker a = (ANewPolitiker)obj;
            System.out.println(a.getName() + "(" + a.getAmtsBeginn() + "-"
                     + a.getAmtsEnde() + ")");
         }
         
         llt.systemOutPrintln(2);
         for(Object obj : v1)
         {
             ANewPolitiker a = (ANewPolitiker)obj;
             System.out.println(a.getName() + "(" + a.getAmtsBeginn() + "-"
                        + a.getAmtsEnde() + ")");
         }
         
       //Realisierung von inhaber eines bestimmten Amtes in alphabetischer Reihenfolge
         
         System.out.println("inhaber eines bestimmten Amtes in alphabetischer Reihenfolge");
         
         Comparator Durchalphabet = new Comparator() {

             public int compare(Object erstPolitiker, Object zweitPolitiker) 
             {

                 ANewPolitiker b1 = (ANewPolitiker) erstPolitiker;
                 ANewPolitiker b2 = (ANewPolitiker) zweitPolitiker;

                 return (b1.getName().hashCode() - b2.getName().hashCode());
             }
         };
             Collections.sort(v1, Durchalphabet);
             Collections.sort(v2, Durchalphabet);
             
             LinkedListTest llt1= new LinkedListTest();
             llt1.einfuegen(0, "Bundeskanzler");
             llt1.einfuegen(1, "Bundespraeident");
             llt1.einfuegen(1, v2);
             llt1.einfuegen(3, v1);
            
             llt1.systemOutPrintln(0);
             for(Object obj : v2)
             {
                ANewPolitiker a = (ANewPolitiker)obj;
                System.out.println(a.getName() + "(" + a.getAmtsBeginn() + "-"
                         + a.getAmtsEnde() + ")");
             }
             
             llt1.systemOutPrintln(2);
             for(Object obj : v1)
             {
                 ANewPolitiker a = (ANewPolitiker)obj;
                 System.out.println(a.getName() + "(" + a.getAmtsBeginn() + "-"
                            + a.getAmtsEnde() + ")");
             }
             
           //Realisierung von inhaber eines bestimmten Amtes nach laenge der Amtszeit geordnet
             
             System.out.println("inhaber eines bestimmten Amtesnach laenge der Amtszeit geordnet");
             
             Comparator DurchLaengeDerAmtszeit = new Comparator() {

                 public int compare(Object erstPolitiker, Object zweitPolitiker) 
                 {

                     ANewPolitiker b1 = (ANewPolitiker) erstPolitiker;
                     ANewPolitiker b2 = (ANewPolitiker) zweitPolitiker;
                     

                    return ((b1.getAmtsEnde().hashCode()-b1.getAmtsBeginn().hashCode())-(b2.getAmtsEnde().hashCode()-b2.getAmtsBeginn().hashCode()));
                 }
             };
                 Collections.sort(v1, DurchLaengeDerAmtszeit);
                 Collections.sort(v2, DurchLaengeDerAmtszeit);
                 
                 LinkedListTest llt2= new LinkedListTest();
                 llt2.einfuegen(0, "Bundeskanzler");
                 llt2.einfuegen(1, "Bundespraeident");
                 llt2.einfuegen(1, v2);
                 llt2.einfuegen(3, v1);
                
                 llt2.systemOutPrintln(0);
                 for(Object obj : v2)
                 {
                    ANewPolitiker a = (ANewPolitiker)obj;
                    System.out.println(a.getName() + "(" + a.getAmtsBeginn() + "-"
                             + a.getAmtsEnde() + ")");
                 }
                 
                 llt2.systemOutPrintln(2);
                 for(Object obj : v1)
                 {
                     ANewPolitiker a = (ANewPolitiker)obj;
                     System.out.println(a.getName() + "(" + a.getAmtsBeginn() + "-"
                                + a.getAmtsEnde() + ")");
                 }
             
       }
}

我发现第二种排序也就是按名字字母排序,排出来不对,还有第三种排序也就是按任职时间的长短排序也不对,
谢谢大家