Here are examples of using lambda expressions in Java:
- Iterating over a list:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.forEach(n -> System.out.println(n));
- Filtering a list:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> evenNumbers = numbers.stream().filter(n -> n % 2 == 0).collect(Collectors.toList());
- Sorting a list:
List<String> names = Arrays.asList("John", "Jane", "Jim");
names.sort((a, b) -> a.compareTo(b));
- Mapping a list:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> squares = numbers.stream().map(n -> n * n).collect(Collectors.toList());
- Calculating sum of a list:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream().reduce(0, (a, b) -> a + b);
- Creating a Runnable:
Runnable runnable = () -> System.out.println("Hello");
- Implementing a comparator:
Comparator<Person> byAge = (p1, p2) -> p1.getAge() - p2.getAge();
- Processing an optional value:
Optional<String> optional = Optional.of("Value");
optional.ifPresent(v -> System.out.println(v));
- Converting a List to Map:
List<Person> people = Arrays.asList(new Person("John", 30), new Person("Jane", 25));
Map<String, Integer> map = people.stream().collect(Collectors.toMap(Person::getName, Person::getAge));
- Using Predicate:
Predicate<Integer> isEven = n -> n % 2 == 0;
System.out.println(isEven.test(4));
- Calculating minimum value in a list:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int min = numbers.stream().min(Integer::compare).get();
- Calculating maximum value in a list:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int max = numbers.stream().max(Integer::compare).get();
- Counting elements in a list:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
long count = numbers.stream().count();
- Checking if all elements match a condition:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
boolean allEven = numbers.stream().allMatch(n -> n % 2 == 0);
- Checking if any element matches a condition:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
boolean anyEven = numbers.stream().anyMatch(n -> n % 2 == 0);
- Finding the first element that matches a condition:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int firstEven = numbers.stream().filter(n -> n % 2 == 0).findFirst().get();
- Grouping elements in a list:
List<Person> people = Arrays.asList(new Person("John", 30), new Person("Jane", 25), new Person("Jim", 30));
Map<Integer, List<Person>> byAge = people.stream().collect(Collectors.groupingBy(Person::getAge));
- Partitioning elements in a list:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
Map<Boolean, List<Integer>> evenOdd = numbers.stream().collect(Collectors.partitioningBy(n -> n % 2 == 0));
- Joining elements in a list:
List<String> names = Arrays.asList("John", "Jane", "Jim");
String joined = names.stream().collect(Collectors.joining(", "));
- Using a Consumer:
Consumer<String> printer = System.out::println;
printer.accept("Hello");
- Using a Function:
Function<String, Integer> stringLength = String::length;
int length = stringLength.apply("Hello");
- Using a Supplier:
Supplier<LocalDate> today = LocalDate::now;
LocalDate date = today.get();
- Using a UnaryOperator:
UnaryOperator<Integer> square = n -> n * n;
int result = square.apply(5);
- Using a BinaryOperator:
BinaryOperator<Integer> sum = (a, b) -> a + b;
int result = sum.apply(5, 10);
- Using a Predicate:
Predicate<Integer> isPositive = n -> n > 0;
boolean positive = isPositive.test(5);
- Using a Stream:
List<String> words = Arrays.asList("Hello", "World");
long count = words.stream().filter(w -> w.length() > 4).count();
- Mapping elements in a stream:
List<String> words = Arrays.asList("Hello", "World");
List<Integer> lengths = words.stream().map(String::length).collect(Collectors.toList());
- Flat mapping elements in a stream:
List<List<String>> lists = Arrays.asList(Arrays.asList("Hello"), Arrays.asList("World"));
List<String> words = lists.stream().flatMap(l -> l.stream()).collect(Collectors.toList());
- Reducing elements in a stream:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream().reduce(0, (a, b) -> a + b);
- Sorting elements in a stream:
List<String> words = Arrays.asList("Hello", "World");
List<String> sorted = words.stream().sorted(Comparator.naturalOrder()).collect(Collectors.toList());
- Skipping elements in a stream:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> skipped = numbers.stream().skip(2).collect(Collectors.toList());
- Limiting elements in a stream:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> limited = numbers.stream().limit(2).collect(Collectors.toList());
- Peeking into a stream:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> peeked = numbers.stream().peek(System.out::println).collect(Collectors.toList());
- Grouping elements in a stream:
List<String> words = Arrays.asList("Hello", "World", "Java");
Map<Integer, List<String>> grouped = words.stream().collect(Collectors.groupingBy(String::length));
- Partitioning elements in a stream:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
Map<Boolean, List<Integer>> partitioned = numbers.stream().collect(Collectors.partitioningBy(n -> n % 2 == 0));
- Finding the maximum element in a stream:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
Optional<Integer> max = numbers.stream().max(Comparator.naturalOrder());
- Finding the minimum element in a stream:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
Optional<Integer> min = numbers.stream().min(Comparator.naturalOrder());
- Finding the sum of elements in a stream:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream().mapToInt(Integer::intValue).sum();
- Finding the average of elements in a stream:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
double average = numbers.stream().mapToInt(Integer::intValue).average().getAsDouble();
- Finding the first element in a stream:
List<String> words = Arrays.asList("Hello", "World", "Java");
Optional<String> first = words.stream().findFirst();
- Finding any element in a stream:
List<String> words = Arrays.asList("Hello", "World", "Java");
Optional<String> any = words.stream().findAny();
- Checking if all elements in a stream match a condition:
List<Integer> numbers = Arrays.asList(2, 4, 6, 8);
boolean allEven = numbers.stream().allMatch(n -> n % 2 == 0);
- Checking if any element in a stream match a condition:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
boolean anyEven = numbers.stream().anyMatch(n -> n % 2 == 0);
- Checking if none of the elements in a stream match a condition:
List<Integer> numbers = Arrays.asList(1, 3, 5, 7);
boolean noneEven = numbers.stream().noneMatch(n -> n % 2 == 0);
- Concatenating elements in a stream:
List<String> words = Arrays.asList("Hello", "World");
String concatenated = words.stream().collect(Collectors.joining(", ")); - Converting a stream to an array:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
Integer[] numbersArray = numbers.stream().toArray(Integer[]::new);
- Converting a stream to a List:
Stream<Integer> numbers = Stream.of(1, 2, 3, 4, 5);
List<Integer> numbersList = numbers.collect(Collectors.toList());
- Converting a stream to a Set:
Stream<String> words = Stream.of("Hello", "World", "Java");
Set<String> wordsSet = words.collect(Collectors.toSet());
- Converting a stream to a Map:
Stream<Person> people = Stream.of(new Person("John", 25), new Person("Jane", 30));
Map<String, Integer> peopleMap = people.collect(Collectors.toMap(Person::getName, Person::getAge));
- Filtering a stream using multiple conditions:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> evenNumbers = numbers.stream().filter(n -> n % 2 == 0).filter(n -> n > 2).collect(Collectors.toList());
- Flattening a stream of streams:
Stream<Stream<Integer>> streamOfStreams = Stream.of(Stream.of(1, 2), Stream.of(3, 4), Stream.of(5, 6));
Stream<Integer> flatStream = streamOfStreams.flatMap(s -> s);
- Peeking at elements in a stream:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.stream().peek(System.out::println).count();
- Limiting the elements in a stream:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> firstThreeNumbers = numbers.stream().limit(3).collect(Collectors.toList());
- Skipping elements in a stream:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> numbersWithoutFirstTwo = numbers.stream().skip(2).collect(Collectors.toList());
- Sorting elements in a stream:
List<Integer> numbers = Arrays.asList(5, 3, 2, 4, 1);
List<Integer> sortedNumbers = numbers.stream().sorted().collect(Collectors.toList());
- Using parallel streams:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.parallelStream().mapToInt(Integer::intValue).sum();
- Using streams with Optional values:
Optional<Integer> maybeNumber = Optional.of(5);
maybeNumber.stream().forEach(System.out::println);
``
No comments:
Post a Comment