java8.AboutStreams Maven / Gradle / Ivy
package java8;
import com.sandwich.koan.Koan;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import java.util.stream.Stream;
import static com.sandwich.koan.constant.KoanConstants.__;
import static com.sandwich.util.Assert.assertEquals;
public class AboutStreams {
String str = "";
List places = Arrays.asList("Belgrade", "Zagreb", "Sarajevo", "Skopje", "Ljubljana", "Podgorica");
@Koan
public void simpleCount() {
long count = places.stream().count();
assertEquals(count, __);
}
@Koan
public void filteredCount() {
long count = places.stream()
.filter(s -> s.startsWith("S"))
.count();
assertEquals(count, __);
}
@Koan
public void max() {
String longest = places.stream()
.max(Comparator.comparing(cityName -> cityName.length()))
.get();
assertEquals(longest, __);
}
@Koan
public void min() {
String shortest = places.stream()
.min(Comparator.comparing(cityName -> cityName.length()))
.get();
assertEquals(shortest, __);
}
@Koan
public void reduce() {
String join = places.stream()
.reduce("", String::concat);
assertEquals(join, __);
}
@Koan
public void reduceWithoutStarterReturnsOptional() {
Optional join = places.stream()
.reduce(String::concat);
assertEquals(join.get(), __);
}
@Koan
public void join() {
String join = places.stream()
.reduce((accumulated, cityName) -> accumulated + "\", \"" + cityName)
.get();
assertEquals(join, __);
}
@Koan
public void stringJoin() {
String join = places.stream()
.collect(Collectors.joining("\", \""));
assertEquals(join, __);
}
@Koan
public void mapReduce() {
OptionalDouble averageLengthOptional = places.stream()
.mapToInt(String::length)
.average();
double averageLength = Math.round(averageLengthOptional.getAsDouble());
assertEquals(averageLength, __);
}
@Koan
public void parallelMapReduce() {
int lengthSum = places.parallelStream()
.mapToInt(String::length)
.sum();
assertEquals(lengthSum, __);
}
@Koan
public void limitSkip() {
int lengthSum_Limit_3_Skip_1 = places.stream()
.mapToInt(String::length)
.limit(3)
.skip(1)
.sum();
assertEquals(lengthSum_Limit_3_Skip_1, __);
}
@Koan
public void lazyEvaluation() {
Stream stream = places.stream()
.filter(s -> {
str = "hello";
return s.startsWith("S");
});
assertEquals(str, __);
}
@Koan
public void sumRange() {
int sum = IntStream.range(1, 4).sum();
assertEquals(sum, __);
}
@Koan
public void rangeToList() {
List range = IntStream.range(1, 4)
.boxed()
.collect(Collectors.toList());
assertEquals(range, __);
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy