主题:再请教一下大家
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() + ")");
}
}
}
我发现第二种排序也就是按名字字母排序,排出来不对,还有第三种排序也就是按任职时间的长短排序也不对,
谢谢大家
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() + ")");
}
}
}
我发现第二种排序也就是按名字字母排序,排出来不对,还有第三种排序也就是按任职时间的长短排序也不对,
谢谢大家