Hallo,
also ich habe folgendes Problem:
Ich habe eine Klasse (Channel). Diese enthält eine menge Variablen.
Ich lese Daten aus, erzeuge mit denen jeweils eine Klasse Channel und füge die Klasse dann einem Vector hinzu (Vector <Channel> cList)
Nun muss ich den Vector sortieren.
Da ich einen PHP code in Java umsetzten will, habe ich dort die Function "usort".
Dazu einen kleinen Algorithmus den ich auch schon in Java umgesetzt habe.
Hier mal ein kleiner Ausschnitt:
PHP
Die Funktion "cmp" ist in der Funktion enthalten die die Channel erzeugt etc.
Nun habe ich erstmal die Funktion "cmp" in Java umgeschrieben (ein bisschen sauberer):
Java
Dieser Code ist eine eigene Methode. Sie ist in der gleichen Klasse enthalten wo die Methode zum Liste erzeugen/channel erzeugen etc. ist.
Nun habe ich gelesen man soll Vectoren mit Comparable sortieren. Nun,... ich hab keine Ahnung wie ich das machen soll, so das ich die "Regeln" der oben genannten Methode "cmp" benutze.
getOrder() ist eine Methode die einen int zurück liefert. Das gleiche bei getId().
Wenn ich Comparable in meine Klasse "Channel" implementiere
dann muss ich ja eine neue Methode hinzufügen:
So, da ich mittlerweile keine Idee mehr habe wie ich das o.g. umsetzte .. brauche ich Hilfe und wende mich deshalb an euch.
Hoffe es war verständlich geschrieben was ich möchte. Falls ich noch ein bisschen Code posten soll oder sonst Fragen dazu beantworten soll, nur her damit
also ich habe folgendes Problem:
Ich habe eine Klasse (Channel). Diese enthält eine menge Variablen.
Ich lese Daten aus, erzeuge mit denen jeweils eine Klasse Channel und füge die Klasse dann einem Vector hinzu (Vector <Channel> cList)
Nun muss ich den Vector sortieren.
Da ich einen PHP code in Java umsetzten will, habe ich dort die Function "usort".
Dazu einen kleinen Algorithmus den ich auch schon in Java umgesetzt habe.
Hier mal ein kleiner Ausschnitt:
PHP
Code:
[ ... Liste erzeugen, channel erzeugen und der liste hinzufügen ... ]
function cmp ($a, $b) {
if ($a["order"] == $b["order"]) {
return ($a["channelid"] < $b["channelid"]) ? -1 : 1;
}//return 0;
return ($a["order"] < $b["order"]) ? -1 : 1;
}
usort($channelList, "cmp");
return $channelList;
}
Nun habe ich erstmal die Funktion "cmp" in Java umgeschrieben (ein bisschen sauberer):
Java
Code:
public int cmp(Channel a, Channel b){
int xOrder = 0;
if (a.getOrder() == b.getOrder()){
xOrder = (a.getId() < b.getId()) ? -1 : 1;
} else {
xOrder = (a.getOrder() < b.getOrder()) ? -1 : 1 ;
}
return xOrder;
}
Dieser Code ist eine eigene Methode. Sie ist in der gleichen Klasse enthalten wo die Methode zum Liste erzeugen/channel erzeugen etc. ist.
Nun habe ich gelesen man soll Vectoren mit Comparable sortieren. Nun,... ich hab keine Ahnung wie ich das machen soll, so das ich die "Regeln" der oben genannten Methode "cmp" benutze.
getOrder() ist eine Methode die einen int zurück liefert. Das gleiche bei getId().
Wenn ich Comparable in meine Klasse "Channel" implementiere
Code:
public class Channel implements Comparable<Channel> {
Code:
public int compareTo(Channel o) {
// TODO Auto-generated method stub
return 0;
}
So, da ich mittlerweile keine Idee mehr habe wie ich das o.g. umsetzte .. brauche ich Hilfe und wende mich deshalb an euch.
Hoffe es war verständlich geschrieben was ich möchte. Falls ich noch ein bisschen Code posten soll oder sonst Fragen dazu beantworten soll, nur her damit