<dependency>
<groupId>com.github.javadev</groupId>
<artifactId>underscore-java</artifactId>
<version>1.14</version>
</dependency>
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
List<Integer> evens = _.filter(numbers, n -> n % 2 == 0);
List<Integer> squares = _.map(numbers, n -> n * n);
int sum = _.reduce(numbers, (acc, n) -> acc + n, 0);
Map<Boolean, List<Integer>> grouped = _.groupBy(numbers, n -> n % 2 == 0);
List<Person> persons = Arrays.asList(
new Person("Alice", 28),
new Person("Bob", 32),
new Person("Charlie", 25),
new Person("David", 30)
);
List<Person> filtered = _.filter(persons, p -> p.getAge() > 30);
List<String> names = _.map(persons, Person::getName);
Map<Integer, List<Person>> grouped = _.groupBy(persons, Person::getAge);
List<Person> merged = _.concat(persons, filtered);
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
List<Integer> result = _.chain(numbers)
.filter(n -> n % 2 == 0)
.map(n -> n * n)
.value();
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
int sum = _.stream(numbers)
.filter(n -> n % 2 == 0)
.mapToInt(n -> n)
.sum();