Gemeinsames Lernen
This commit is contained in:
57
src/org/eidecker/mapreduce/DistanceCounter.java
Normal file
57
src/org/eidecker/mapreduce/DistanceCounter.java
Normal file
@@ -0,0 +1,57 @@
|
||||
package org.eidecker.mapreduce;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/**
|
||||
* @author seidecke.
|
||||
*/
|
||||
public class DistanceCounter {
|
||||
|
||||
private static Integer komplizierteBerechnungMitRestCall(Integer strecke, Integer strecke2) {
|
||||
return strecke2 - strecke;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDistanceSum() {
|
||||
assertEquals(55, distanceSum(orte()));
|
||||
}
|
||||
|
||||
private Integer distanceSum(List<Stopp> orte) {
|
||||
Optional<Integer> distanceSum = orte.stream()
|
||||
.map(Stopp::getWichtigeDingeZurBerechnung)
|
||||
.reduce(DistanceCounter::komplizierteBerechnungMitRestCall);
|
||||
|
||||
return distanceSum.orElse(0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private List<Stopp> orte() {
|
||||
return IntStream.rangeClosed(1,10).boxed().map(Stopp::new).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
// private BinaryOperator<Ort> distanceAdder = (ort, ort2) -> ort2.getWert() - ort.getWert();
|
||||
//
|
||||
// private BiFunction<Ort, Ort, Integer> distanceAdder = (ort, ort2) -> ort2.getWert() - ort.getWert();
|
||||
|
||||
class Stopp {
|
||||
Integer wert;
|
||||
|
||||
public Stopp(Integer wert) {
|
||||
this.wert = wert;
|
||||
}
|
||||
|
||||
public Integer getWichtigeDingeZurBerechnung() {
|
||||
return wert;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user