Hallo!
Ich hab ein kleines (test-)programm geschrieben, was ne Liste enthält, die nach nem Comparator geordnet wird, allerdings geht es nicht....
Hier erstmal der source (sind 3 klassen)
conTEST:
conEntry:
conSort:
Allerdings gibt die Konsole mir nur "f" aus...
eigentlich sollte ja
"a
b
c
d
e
f"
kommen....
was ist falsch?!
ToMiNaToR
Ich hab ein kleines (test-)programm geschrieben, was ne Liste enthält, die nach nem Comparator geordnet wird, allerdings geht es nicht....
Hier erstmal der source (sind 3 klassen)
conTEST:
Code:
import java.util.Iterator;
import java.util.TreeSet;
public class conTEST {
@SuppressWarnings("unchecked")
public static void main(String[] args){
conEntry e=new conEntry();
TreeSet s = new TreeSet(new conSort("titel"));
e.setAll("a", "a", "a", "a", "a", "a", 'n');
s.add(e);
e.setAll("b", "b", "b", "b", "b", "b", 'n');
s.add(e);
e.setAll("c", "c", "c", "c", "c", "c", 'n');
s.add(e);
e.setAll("d", "d", "d", "d", "d", "d", 'n');
s.add(e);
e.setAll("e", "e", "e", "e", "e", "e", 'n');
s.add(e);
e.setAll("f", "f", "f", "f", "f", "f", 'n');
s.add(e);
Iterator it = s.iterator();
while (it.hasNext()) {
System.out.println(((conEntry)it.next()).getTitel());
}
}
}
conEntry:
Code:
public class conEntry {
int num = 0;
String fpath = "";
String titel = "";
String dauer = "";
String interpret = "";
String album = "";
String genre = "";
char mark = 'n';
conEntry(int unum, String ufpath, String utitel, String udauer,
String uinterpret, String ualbum, String ugenre) {
num = unum;
fpath = ufpath;
titel = utitel;
dauer = utitel;
interpret = uinterpret;
album = ualbum;
genre = ugenre;
mark = 'n';
}
conEntry() {
}
public String getOrder(String order) {
String temp="";
if (order.equals("titel"))
temp=titel;
if (order.equals("dauer"))
temp=dauer;
if (order.equals("interpret"))
temp=interpret;
if (order.equals("album"))
temp=album;
if (order.equals("genre"))
temp=genre;
if (order.equals("fpath"))
temp=fpath;
return temp;
}
public String getTitel() {
return titel;
}
public String getDauer() {
return dauer;
}
public String getInterpret() {
return interpret;
}
public String getAlbum() {
return album;
}
public String getMusikrichtung() {
return genre;
}
public String getFpath() {
return fpath;
}
public boolean getMarking() {
if (mark == 'm' || mark == 'b') {
return true;
} else {
return false;
}
}
public boolean getPlaying() {
if (mark == 'p' || mark == 'b') {
return true;
} else {
return false;
}
}
public void setTitel(String temp) {
titel = temp;
}
public void setDauer(String temp) {
dauer = temp;
}
public void setInterpret(String temp) {
interpret = temp;
}
public void setAlbum(String temp) {
album = temp;
}
public void setMusikrichtung(String temp) {
genre = temp;
}
public void setFilepath(String temp) {
fpath = temp;
}
public void setMarking() {
if (mark == 'p') {
mark = 'b';
}
if (mark == 'n') {
mark = 'm';
}
}
public void setPlaying() {
if (mark == 'n') {
mark = 'p';
}
if (mark == 'm') {
mark = 'b';
}
}
public void delMarking() {
if (mark == 'm') {
mark = 'n';
}
if (mark == 'b') {
mark = 'p';
}
}
public void delPlaying() {
if (mark == 'p') {
mark = 'n';
}
if (mark == 'b') {
mark = 'm';
}
}
public void setAll(String ufpath, String utitel, String udauer,
String uinterpret, String ualbum, String ugenre, char umark) {
fpath = ufpath;
titel = utitel;
dauer = utitel;
interpret = uinterpret;
album = ualbum;
genre = ugenre;
mark = umark;
}
}
conSort:
Code:
import java.util.Comparator;
class conSort implements Comparator {
public String order="";
conSort(String nw) {
order=nw;
}
public int compare(Object o1, Object o2) {
return ((conEntry) o1).getOrder(order).compareTo(((conEntry) o2).getOrder(order));
}
}
Allerdings gibt die Konsole mir nur "f" aus...
eigentlich sollte ja
"a
b
c
d
e
f"
kommen....
was ist falsch?!
ToMiNaToR