목록2025/07 (11)
컴퓨터공학 💻 도서관📚
문제 정의// 요런 문제에 스트림을 활용하면 좋다는 예시여행사에 패키지 여행 상품이 있습니다. 여행 비용은 15세 이상은 100만원, 그 미만은 50만원 입니다. 고객 세 명이 패키지 여행을 떠난다고 했을 때 비용 계산과 고객 명단 검색등에 대한 연산을 스트림을 활용하여 구현해 봅니다.고객에 대한 클래스를 만들고 ArrayList로 고객을 관리 합니다. 고객 정보는 다음과 같습니다.CustomerLee 이름 : 이순신나이 : 40비용 : 100CustomerKim이름 : 김유신나이 : 20 비용 : 100CustomerHong이름 : 홍길동나이 :13비용 : 50고객 클래스public class TravelCustomer { private String name; //이름 private int age;..
reduce() 는 Stream의 메서드이고 최종연산이다. 스트림에 대해서 하고 싶은 특정 연산을 직접 정의할 수 있는 연산을 알아보자reduce() 연산정의된 연산이 아닌 프로그래머가 직접 구현한 연산을 적용T reduce(T identify, BinaryOperator accumulator)// 배열의 모든 요소의 합을 구하는 reduce() 연산 구현 예Arrays.stream(arr).reduce(0, (a,b)->a+b)); // 람다식을 넣은 경우 : add 함수 구현1번째 매개변수는 기본값 , 2번째는 BinaryOperator 라는 인터페이스를 구현한 부분인데 이 부분은 람다식을 직접 쓸 수도 있고 여기에 쓸 람다식이 좀 길때는 BinaryOperator를 implement한 클래스..
스트림 이란?자료의 대상과 관계없이 동일한 연산을 수행배열, 컬렉션을 대상으로 연산을 수행 함일관성 있는 연산으로 자료의 처리를 쉽고 간단하게 함자료 처리에 대한 추상화가 구현되었다고 함컬렉션을 보면 스트림이라는 메서드를 호출할 수 있다.한 번 생성하고 사용한 스트림은 재사용 할 수 없음자료에 대한 스트림을 생성하여 연산을 수행하면 스트림은 소모됨다른 연산을 수행하기 위해서는 스트림을 다시 생성해야 함스트림 연산은 기존 자료를 변경하지 않음자료에 대한 스트림을 생성하면 스트림이 사용하는 메모리 공간은 별도로 생성되므로 연산이 수행되도 기존 자료에 대한 변경은 발생하지 않음 , 즉, 스트림은 기존 자료와는 다른 메모리를 쓴다.스트림 연산은 중간 연산과 최종 연산으로 구분 됨스트림에 대해 중간 연산은 여러..
객체 지향 프로그래밍과 람다식 비교문자열 두 개를 연결하여 출력하는 예제를 두 가지 방식으로 구현해 보자2개의 스트링을 연결해주는 인터페이스 선언public interface StringConcat { public void makeString(String s1, String s2);} 객체 지향 프로그래밍으로 구현하기 : 인터페이스를 구현한 클래스를 만들고 클래스의 메서드를 호출해서 사용하는 방법// 인터페이스를 구현한 클래스public class StringConCatImpl implements StringConcat{ @Override public void makeString(String s1, String s2) { System.out.println( s1 + "," + s2 ); }}//..
함수형 인터페이스 선언하기람다식을 선언하기 위한 인터페이스익명 함수와 매개 변수만으로 구현되므로 인터페이스는 단 하나의 메서드만을 선언해야 한다(익명함수이므로 메서드가 2개 이상 있으면 어느 인터페이스를 구현했는지가 모호해지기 때문이다.)@FunctionalInterface 애노테이션(annotation)함수형 인터페이스라는 의미, 내부에 여러 개의 메서드를 선언하면 에러남@FunctionalTnterface // @FunctionalInterface 애노테이션public interface Add { public int add(Int x, int y);}람다식 구현과 호출 (두 수를 비교하는 코드)@FunctionalInterfacepublic interface MyNumber { int ge..
https://www.instagram.com/reel/DLizOYpzuiZ/?utm_source=ig_web_copy_link
함수형 프로그래밍과 람다식자바는 객체 지향 프로그래밍 : 기능을 수행하긴 위해서는 객체를 만들고 그 객체 내부에 멤버 변수를 선언하고 기능을 수행하는 메서드를 구현함수형 프로그래밍을 자바에서 제공한 게 람다식이고 Java8부터 이를 지원하고 있다.함수의 구현과 호출만으로 프로그래밍이 수행되는 방식함수형 프로그래밍(Functional Programming: FP)함수를 기반으로 하는 프로그래밍이고 입력받는 매개변수 이외에 외부 자료를 사용하지 않아 여려 자료가 동시에 수행되는 병렬처리가 가능하다. 함수형 프로그래밍은 함수의 기능이 자료에 독립적임을 보장한다. 이는 동일한 자료에 대해 동일한 결과를 보장하고, 다양한 자료에 대해 같은 기능을 수행할 수 있다.함수형 프로그래밍은 순수함수(pure functio..