From a82e09bc93768bf9910819cedb5db367f8b49316 Mon Sep 17 00:00:00 2001 From: kyoohyunlee Date: Mon, 28 Jul 2025 18:31:34 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=EB=9E=8C=EB=8B=A4&=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=EB=A6=BC:=20=EB=9E=8C=EB=8B=A4=EC=8B=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lamda/Calculable.java | 7 ++++++ .../lamda/LamdaEx.java | 23 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 src/step05_lamda_and_stream/lamda/Calculable.java create mode 100644 src/step05_lamda_and_stream/lamda/LamdaEx.java diff --git a/src/step05_lamda_and_stream/lamda/Calculable.java b/src/step05_lamda_and_stream/lamda/Calculable.java new file mode 100644 index 0000000..a987761 --- /dev/null +++ b/src/step05_lamda_and_stream/lamda/Calculable.java @@ -0,0 +1,7 @@ +package step05_lamda_and_stream.lamda; + +@FunctionalInterface +public interface Calculable { + //추상메소드 + void calculate(int x, int y); +} diff --git a/src/step05_lamda_and_stream/lamda/LamdaEx.java b/src/step05_lamda_and_stream/lamda/LamdaEx.java new file mode 100644 index 0000000..c202309 --- /dev/null +++ b/src/step05_lamda_and_stream/lamda/LamdaEx.java @@ -0,0 +1,23 @@ +package step05_lamda_and_stream.lamda; + +public class LamdaEx { + public static void main(String[] args) { + action((x,y) -> { + int result = x+y; + System.out.println("result: "+result); + }); + + action((x, y)-> { + int result = x - y; + System.out.println("result: "+result); + }); + } + + public static void action(Calculable calculable){ + //데이터 + int x = 10; + int y = 4; + //데이터 처리 + calculable.calculate(x, y); + } +} From 017c6d90fce61430fd6d94683737f6db9e0727fe Mon Sep 17 00:00:00 2001 From: kyoohyunlee Date: Mon, 28 Jul 2025 18:37:36 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=EB=9E=8C=EB=8B=A4&=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=EB=A6=BC:=20=EC=8A=A4=ED=8A=B8=EB=A6=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stream/StreamExample.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/step05_lamda_and_stream/stream/StreamExample.java diff --git a/src/step05_lamda_and_stream/stream/StreamExample.java b/src/step05_lamda_and_stream/stream/StreamExample.java new file mode 100644 index 0000000..e1cbd00 --- /dev/null +++ b/src/step05_lamda_and_stream/stream/StreamExample.java @@ -0,0 +1,18 @@ +package step05_lamda_and_stream.stream; + +import java.util.*; +import java.util.stream.Stream; + +public class StreamExample { + public static void main(String[] args) { + //Set 컬렉션 + Set set = new HashSet<>(); + set.add("이규현1"); + set.add("이규현2"); + set.add("이규현3"); + + //Stream으로 반복처리하기 + Stream stream = set.stream(); + stream.forEach(name -> System.out.println(name)); + } +} From 17eab4ffa8accf26b3e7aae8e02b8b2fd2dc2602 Mon Sep 17 00:00:00 2001 From: kyoohyunlee Date: Mon, 28 Jul 2025 18:54:22 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=EB=9E=8C=EB=8B=A4&=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=EB=A6=BC:=20fiter(),=20sorted()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stream/FilteringExample.java | 31 +++++++++++++++++++ .../stream/SortedExample.java | 27 ++++++++++++++++ .../stream/Student.java | 14 +++++++++ 3 files changed, 72 insertions(+) create mode 100644 src/step05_lamda_and_stream/stream/FilteringExample.java create mode 100644 src/step05_lamda_and_stream/stream/SortedExample.java create mode 100644 src/step05_lamda_and_stream/stream/Student.java diff --git a/src/step05_lamda_and_stream/stream/FilteringExample.java b/src/step05_lamda_and_stream/stream/FilteringExample.java new file mode 100644 index 0000000..b005198 --- /dev/null +++ b/src/step05_lamda_and_stream/stream/FilteringExample.java @@ -0,0 +1,31 @@ +package step05_lamda_and_stream.stream; + +import java.util.*; + +public class FilteringExample { + public static void main(String[] args) { + List list = new ArrayList<>(); + list.add("이규현"); + list.add("이규현"); //중복 + list.add("김규현2"); + list.add("김규현3"); + list.add("이규현4"); + + list.stream() + .distinct() + .forEach(name -> System.out.println(name)); + System.out.println(); + + //김으로 시작하는 요소 필터링 + list.stream() + .filter(name -> name.startsWith("김")) + .forEach(name -> System.out.println(name)); + System.out.println(); + + //중복요소 먼저 제거 후 -> 필터링 + list.stream() + .distinct() + .filter(name -> name.startsWith("김")) + .forEach(name -> System.out.println(name)); + } +} diff --git a/src/step05_lamda_and_stream/stream/SortedExample.java b/src/step05_lamda_and_stream/stream/SortedExample.java new file mode 100644 index 0000000..0ba1ce9 --- /dev/null +++ b/src/step05_lamda_and_stream/stream/SortedExample.java @@ -0,0 +1,27 @@ +package step05_lamda_and_stream.stream; + +import java.util.*; +public class SortedExample { + public static void main(String[] args) { + List studentList = new ArrayList<>(); + + studentList.add(new Student("이규현1", 100)); + studentList.add(new Student("이규현2", 50)); + studentList.add(new Student("이규현3", 80)); + + //오름차순 + studentList.stream() + //231 + .sorted((s1, s2) -> Integer.compare(s1.getScore(), s2.getScore())) + .forEach(student -> + System.out.println("이름: "+student.getName()+",점수: "+student.getScore())); + System.out.println(); + + //내림차순 + studentList.stream() + //132 + .sorted((s1, s2) -> Integer.compare(s2.getScore(), s1.getScore())) + .forEach(student -> + System.out.println("이름: "+student.getName()+",점수: "+student.getScore())); + } +} diff --git a/src/step05_lamda_and_stream/stream/Student.java b/src/step05_lamda_and_stream/stream/Student.java new file mode 100644 index 0000000..7b7013d --- /dev/null +++ b/src/step05_lamda_and_stream/stream/Student.java @@ -0,0 +1,14 @@ +package step05_lamda_and_stream.stream; + +public class Student { + private String name; + private int score; + + public Student(String name, int score){ + this.name = name; + this.score = score; + } + + public String getName(){return name;}; + public int getScore(){return score;} +}