Ich habe ein Interface zum Sortieren mit den verschiedenen Sortieralgorithmen geschrieben:
Es gibt weiters eine Klasse BubbleSort
und nun möchte ich das testen, dazu die folgende Klasse SortDemo
sorttest(reihung, new BubbleSort<Character>());
gibt zwar keine Fehlermeldung aus, doch verfängt sich das Programm in einer Endlosschleife;
sorttest(filme, new BubbleSort<Film>());
hier stimmt der Typ Film nicht, es kommt folgende Fehlermeldung;
Bound mismatch: The type Film is not a valid substitute for the bounded parameter <E extends Comparable<E>> of the type BubbleSort<E>
Mir ist nicht klar, welchen Typ ich da übergeben muss, ich will diese Sortieralgorithmen nämlich mit den verschiedensten Klassen machen können.
Danke im voraus.
Java:
public interface Sort<E extends Comparable<E>> {
public void sort(E[] sammlung);
}
Java:
public class BubbleSort<E extends Comparable<E>> implements Sort<E> {
// Konstruktor kann hier entfallen
public void sort(E[] sammlung){
for (int i=0; i<sammlung.length; i++)
for (int j=0; j<sammlung.length; i++)
if (sammlung[j+1].compareTo(sammlung[j])<0) {
// vergleichen
final E temp = sammlung[j+1];
sammlung[j+1] = sammlung[j];
sammlung[j] = temp;
}
}
}
und nun möchte ich das testen, dazu die folgende Klasse SortDemo
Java:
import film.*;
public class SortDemo {
//static final ArrayList<String> al = new ArrayList(){};
private static final String testreihe = "EFACHBGD";
static <E extends Comparable<E>> void sorttest(E[] sammlung, Sort<E> algorithmus){
algorithmus.sort(sammlung);
}
/**
* @param args
*/
public static void main(String[] args) {
Film[] filme = new Film[]{new Film("007","action", 100), new Film("Sissi", "kitsch", 200)};
Character[] reihung = new Character[testreihe.length()];
for (int i = 0; i < reihung.length; i++)
reihung[i] = testreihe.charAt(i);
System.out.println("Eingabe: ");
for (char zeichen : reihung)
System.out.print(zeichen);
//Arrays.sort(reihung);
sorttest(filme, new BubbleSort<Film>());
sorttest(reihung, new BubbleSort<Character>());
for(Character c : reihung){
System.out.print(c + " ");
}
}
sorttest(reihung, new BubbleSort<Character>());
gibt zwar keine Fehlermeldung aus, doch verfängt sich das Programm in einer Endlosschleife;
sorttest(filme, new BubbleSort<Film>());
hier stimmt der Typ Film nicht, es kommt folgende Fehlermeldung;
Bound mismatch: The type Film is not a valid substitute for the bounded parameter <E extends Comparable<E>> of the type BubbleSort<E>
Mir ist nicht klar, welchen Typ ich da übergeben muss, ich will diese Sortieralgorithmen nämlich mit den verschiedensten Klassen machen können.
Danke im voraus.