람다식 연습 예제
by 볼빵빵오춘기람다식과 람다식 작성방법
https://luckygirljinny.tistory.com/166
람다식 연습 예제
예제1 : 기본적인 람다식
람다식 사용 전
public class LambdaExample1 {
public static void main(String[] args) {
Function<String, String> toUpperCase = new Function<String, String>() {
@Override
public String apply(String s) {
return s.toUpperCase();
}
};
System.out.println(toUpperCase.apply("hello")); // 출력: HELLO
}
}
람다식 사용 후
더보기
public class LambdaExample1 {
public static void main(String[] args) {
Function<String, String> toUpperCase = s -> s.toUpperCase();
System.out.println(toUpperCase.apply("hello")); // 출력: HELLO
}
}
예제2 : 숫자 리스트 필터링
람다식 사용 전
public class LambdaExample2 {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
List<Integer> evenNumbers = numbers.stream()
.filter(new Predicate<Integer>() {
@Override
public boolean test(Integer n) {
return n % 2 == 0;
}
})
.collect(Collectors.toList());
System.out.println(evenNumbers); // 출력: [2, 4, 6]
}
}
람다식 사용 후
더보기
public class LambdaExample2 {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
List<Integer> evenNumbers = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
System.out.println(evenNumbers); // 출력: [2, 4, 6]
}
}
예제3 : 문자열 리스트 정렬
람다식 사용 전
public class LambdaExample3 {
public static void main(String[] args) {
List<String> strings = Arrays.asList("apple", "banana", "cherry", "date");
strings.sort(new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return Integer.compare(s1.length(), s2.length());
}
});
System.out.println(strings); // 출력: [date, apple, banana, cherry]
}
}
람다식 사용 후
더보기
public class LambdaExample3 {
public static void main(String[] args) {
List<String> strings = Arrays.asList("apple", "banana", "cherry", "date");
strings.sort((s1, s2) -> Integer.compare(s1.length(), s2.length()));
System.out.println(strings); // 출력: [date, apple, banana, cherry]
}
}
예제4 : 숫자 리스트의 합계
람다식 사용 전
public class LambdaExample4 {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream()
.reduce(0, new BinaryOperator<Integer>() {
@Override
public Integer apply(Integer a, Integer b) {
return a + b;
}
});
System.out.println(sum); // 출력: 15
}
}
람다식 사용 후
더보기
public class LambdaExample4 {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream()
.reduce(0, (a, b) -> a + b);
System.out.println(sum); // 출력: 15
}
}
예제5 : 문자열 리스트 연결
람다식 사용 전
public class LambdaExample5 {
public static void main(String[] args) {
List<String> strings = Arrays.asList("hello", "world", "java");
String result = strings.stream()
.collect(Collectors.joining(" "));
System.out.println(result); // 출력: hello world java
}
}
람다식 사용 후
더보기
public class LambdaExample5 {
public static void main(String[] args) {
List<String> strings = Arrays.asList("hello", "world", "java");
String result = strings.stream()
.collect(Collectors.joining(" "));
System.out.println(result); // 출력: hello world java
}
}
예제6 : 리스트 요소 제곱
람다식 사용 전
public class LambdaExample6 {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> squaredNumbers = numbers.stream()
.map(new Function<Integer, Integer>() {
@Override
public Integer apply(Integer n) {
return n * n;
}
})
.collect(Collectors.toList());
System.out.println(squaredNumbers); // 출력: [1, 4, 9, 16, 25]
}
}
람다식 사용 후
더보기
public class LambdaExample6 {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> squaredNumbers = numbers.stream()
.map(n -> n * n)
.collect(Collectors.toList());
System.out.println(squaredNumbers); // 출력: [1, 4, 9, 16, 25]
}
}
예제7 : 사용자 정의 함수형 인터페이스
람다식 사용 전
@FunctionalInterface
interface GCD {
int compute(int a, int b);
}
public class LambdaExample7 {
public static void main(String[] args) {
GCD gcd = new GCD() {
@Override
public int compute(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
};
System.out.println(gcd.compute(54, 24)); // 출력: 6
}
}
람다식 사용 후
더보기
@FunctionalInterface
interface GCD {
int compute(int a, int b);
}
public class LambdaExample7 {
public static void main(String[] args) {
GCD gcd = (a, b) -> {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
};
System.out.println(gcd.compute(54, 24)); // 출력: 6
}
}
예제8 : 리스트 요소의 길이 합계
람다식 사용 전
public class LambdaExample8 {
public static void main(String[] args) {
List<String> strings = Arrays.asList("hello", "world", "java");
int totalLength = strings.stream()
.mapToInt(new ToIntFunction<String>() {
@Override
public int applyAsInt(String s) {
return s.length();
}
})
.sum();
System.out.println(totalLength); // 출력: 14
}
}
람다식 사용 후
더보기
public class LambdaExample8 {
public static void main(String[] args) {
List<String> strings = Arrays.asList("hello", "world", "java");
int totalLength = strings.stream()
.mapToInt(String::length)
.sum();
System.out.println(totalLength); // 출력: 14
}
}
예제9 : 사용자 정의 Comparator
람다식 사용 전
class Person {
String name;
int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return name + " (" + age + ")";
}
}
public class LambdaExample9 {
public static void main(String[] args) {
List<Person> people = Arrays.asList(
new Person("Alice", 30),
new Person("Bob", 25),
new Person("Charlie", 35)
);
people.sort(new Comparator<Person>() {
@Override
public int compare(Person p1, Person p2) {
return Integer.compare(p1.age, p2.age);
}
});
System.out.println(people); // 출력: [Bob (25), Alice (30), Charlie (35)]
}
}
람다식 사용 후
더보기
class Person {
String name;
int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return name + " (" + age + ")";
}
}
public class LambdaExample9 {
public static void main(String[] args) {
List<Person> people = Arrays.asList(
new Person("Alice", 30),
new Person("Bob", 25),
new Person("Charlie", 35)
);
people.sort(Comparator.comparingInt(p -> p.age));
System.out.println(people); // 출력: [Bob (25), Alice (30), Charlie (35)]
}
}
예제10 : 문자열 리스트의 첫 글자 추출
람다식 사용 전
public class LambdaExample10 {
public static void main(String[] args) {
List<String> strings = Arrays.asList("hello", "world", "java");
List<Character> firstChars = strings.stream()
.map(new Function<String, Character>() {
@Override
public Character apply(String s) {
return s.charAt(0);
}
})
.collect(Collectors.toList());
System.out.println(firstChars); // 출력: [h, w, j]
}
}
람다식 사용 후
더보기
public class LambdaExample10 {
public static void main(String[] args) {
List<String> strings = Arrays.asList("hello", "world", "java");
List<Character> firstChars = strings.stream()
.map(s -> s.charAt(0))
.collect(Collectors.toList());
System.out.println(firstChars); // 출력: [h, w, j]
}
}
'👩🏻💻 About 프로그래밍 > Java' 카테고리의 다른 글
Java 스트림의 그룹화와 분할 (0) | 2023.12.11 |
---|---|
Java collect()와 Collectors (0) | 2023.12.11 |
Java 스트림의 최종연산 (0) | 2023.12.11 |
Java 스트림의 중간연산2 (0) | 2023.12.11 |
Java 스트림의 중간연산 (0) | 2023.12.11 |
블로그의 정보
Hello 춘기's world
볼빵빵오춘기