Hallo,
ich suche eine Möglichkeit für Methoden in einer Klasse eine Teilmenge aller Möglichen objects als Parameter zu übergeben.
Beispiel: Ich möchte z.B. Zahlen sortieren. Anbei ein mehr schlecht als rechtes Beispiel eines Quicksorts aber es müsste als Beispiel ausreichend sein.
Ich suche nun eine Möglichkeit nicht nur int[] zu übergeben sondern auch alle anderen ZahlenTypen wie z.B. double, float, long, short u.v.m.
Mein erster Ansatz waren Generics. Hier würden aber z.B. auch Konstrukte wie Quicksort<IrgendeineKlasse> zugelassen sein die ich ja ungerne haben möchte.
Gibt es hier also eine Möglichkeit einen Filter einzubauen? Oberklasse von allen Zahlen?
Dies würde dann aber wohl List<Integer> oder ähnliches wieder nicht zulassen.
Mein zweiter Ansatz war es, für jeden Datentypen eine Methode zur Verfügung zu stellen. Was bei dem obigen Beispiel vielleicht noch machbar wäre aber vom Prinzip eher suboptimal weil ich sehr viel Redundanz bekommen würde.
MfG cuanu
ich suche eine Möglichkeit für Methoden in einer Klasse eine Teilmenge aller Möglichen objects als Parameter zu übergeben.
Beispiel: Ich möchte z.B. Zahlen sortieren. Anbei ein mehr schlecht als rechtes Beispiel eines Quicksorts aber es müsste als Beispiel ausreichend sein.
Code:
public class Quicksort {
public static int[] sortInteger(int[] list){
int n = list.length;
do
{
for(int i = 0; i<n-1; i++)
{
if(list[i] > list[i+1])
{
list = changePosition(list, i, i+1);
}
}
n--;
} while (n != 1);
return list;
}
private static int[] changePosition(int[] list, int i1, int i2){
int m = list[i1];
list[i1] = list[i2];
list[i2] = m;
return list;
}
}
Mein erster Ansatz waren Generics. Hier würden aber z.B. auch Konstrukte wie Quicksort<IrgendeineKlasse> zugelassen sein die ich ja ungerne haben möchte.
Gibt es hier also eine Möglichkeit einen Filter einzubauen? Oberklasse von allen Zahlen?
Dies würde dann aber wohl List<Integer> oder ähnliches wieder nicht zulassen.
Mein zweiter Ansatz war es, für jeden Datentypen eine Methode zur Verfügung zu stellen. Was bei dem obigen Beispiel vielleicht noch machbar wäre aber vom Prinzip eher suboptimal weil ich sehr viel Redundanz bekommen würde.
MfG cuanu