Hallo, ich bin noch neu in der Java-Welt. Ich bin an ein paar Uni Übungsaufgaben gekommen und hänge bei den Lambda Ausdrücken.
Also erstmal das gegebene Interface und die Klasse:
Die Aufgabe ist folgende:
"Ergänzen Sie einen Lambda-Ausdruck als Argument für einen Aufruf von compute, so dass die Summe der Quadrate aller Inhalte des Attributs data der Variablen result zugewiesen wird. Die Referenz iv verweist auf ein IntValues-Objekt."
Also das was ich zu Lambda-Ausdrücken gelesen habe war auch ziemlich einleuchtend und einfach. Nur hier ist es offensichtlich nicht getan mit
.
Wenn ich ein Feld z.B. {2,2} anlege und compute mit dem Lambda-Ausdruck
aufrufe bekomme ich die Summe 4 zurück. Ist auch klar, da comp ja auch summieren soll. Nehme ich aber als Lambda-Ausdruck
bekomme 0 zurück.
Ich weiß wirklich nicht mehr weiter.
Also erstmal das gegebene Interface und die Klasse:
Java:
public interface Function{
int apply( int p );
}
Java:
public class IntValues{
private int[] data;
public IntValues( int[] p ) { data = p; }
public int compute( Function f ){
int comp = 0;
for( int d : data ){
comp += f.apply( d );
}
return comp;
}
}
Die Aufgabe ist folgende:
"Ergänzen Sie einen Lambda-Ausdruck als Argument für einen Aufruf von compute, so dass die Summe der Quadrate aller Inhalte des Attributs data der Variablen result zugewiesen wird. Die Referenz iv verweist auf ein IntValues-Objekt."
Java:
int result = iv.compute( ... );
Also das was ich zu Lambda-Ausdrücken gelesen habe war auch ziemlich einleuchtend und einfach. Nur hier ist es offensichtlich nicht getan mit
Java:
(int a, int b) -> ( return a*b; )
Wenn ich ein Feld z.B. {2,2} anlege und compute mit dem Lambda-Ausdruck
Java:
x -> x
Java:
x -> x^2
Ich weiß wirklich nicht mehr weiter.
Zuletzt bearbeitet von einem Moderator: