KanzlerOne
Grünschnabel
Hi,
ich habe folgenden Code und ein kleines Problem:
Da - anders als bei Sprachen wie z.B. Scala - es in Java nicht möglich ist, eine Funktion als Parameter zu übergeben, muss also der Ergebniswert der Funktion übergeben werden. Und da ist das Problem: Übergebe ich die Methode, wird sie sofort ausgeführt, ich möchte aber, dass sie erst in der Zeile "if(p) return i;" ausgeführt wird.
Oder ist es einfach notwendig, für jede bool'sche Funktion eine eigene Suchmethode zu schreiben, die diese selber implementiert? Es muss doch möglich sein, eine einzige generische Suchmethode zu schreiben, der man bei Bedarf eine andere Funktion übergeben kann, die dann auf die Arrayelemente angewendet wird.
Gruß
ich habe folgenden Code und ein kleines Problem:
Code:
public class SearchEngines<T> {
T val;
boolean isEqual(T e){
if(val.equals(e)) return true;
else return false;
}
int linear(T[] a, boolean p) throws Exception{
for(int i = 0; i < a.length; i++){
val = a[i];
if(p) return i;
}
throw new Exception("element not found");
}
}
Da - anders als bei Sprachen wie z.B. Scala - es in Java nicht möglich ist, eine Funktion als Parameter zu übergeben, muss also der Ergebniswert der Funktion übergeben werden. Und da ist das Problem: Übergebe ich die Methode, wird sie sofort ausgeführt, ich möchte aber, dass sie erst in der Zeile "if(p) return i;" ausgeführt wird.
Oder ist es einfach notwendig, für jede bool'sche Funktion eine eigene Suchmethode zu schreiben, die diese selber implementiert? Es muss doch möglich sein, eine einzige generische Suchmethode zu schreiben, der man bei Bedarf eine andere Funktion übergeben kann, die dann auf die Arrayelemente angewendet wird.
Gruß