[Java] Java8 표준 함수형 인터페이스
·
Java
Java 8에서 기본으로 제공하는 함수형 인터페이스는 무엇이 있을까? 참고링크 1. 표준 함수형 인터페이스 Java 8부터 기본으로 제공하는 함수형 인터페이스 Java.lang.function 패키지 활용 예시 ArrayList 클래스의 forEach 메소드를 보면 Consumer를 매개 값으로 활용하고 있는 것을 알 수 있다 Consumer : T를 받아서 아무 값도 리턴하지 않는 함수형 인터페이스 public class ArrayList extends AbstractList @Override public void forEach(Consumer
[Java] ::new 는 무엇일까? Java 8 메소드 레퍼런스 (Method Reference)
·
Java
온라인 상의 자바 예시 코드를 보면 종종 Member::new 이런식으로 ::new 혹은 다른 메소드로 코드가 짜여진 경우가 있다 1. 메소드 레퍼런스 람다 표현식을 구현할 때 쓸 수 있는 방법으로 기존에 있던 다른 메소드를 참조하여 그 메소드 자체를 함수형 인터페이스의 구현체로 사용 람다의 구현 자리를 기존에 이미 있는 어떤 메서드를 참조하는 방식 람다 표현식이 단 하나의 메소드만을 호출하는 경우에 해당 람다 표현식에서 불 필요한 매개변수를 제거하고 사용할 수 있다. :: 연산자를 이용해 메소드 이름과 클래스를 분리하거나, 메소드 이름과 객체의 이름을 분리한다. 클래스::메소드 객체::메소드 클래스::new 2. 유형 1) 스태틱 메소드 참조(Static Method Reference) 클래스::정적메..
[Java] Java8 Optional : orElse, orElseThrow, orElseGet
·
Java
Optional의 예외처리 - orElse(default)는 Optional 값에 null이 들어올 경우에 orElse의 default 값으로 return - orElseGet(() -> default)은 Optional 값에 null이 들어올 경우에 default 값으로 return - orElseThrow는 Optional 객체가 비어있을 경우에 예외를 던짐 -> 그렇다면 orElse와 orElseGet의 차이가 없는건가? 이거에 대한 내용은 "Optional을 올바르게 사용하기 위한 방법을 제공하는 26가지" 글에 나와있다. 26 Reasons Why Using Optional Correctly Is Not Optional - DZone We take a look at the top 25 most ..
[Java / 코딩테스트] 청소 문제
·
알고리즘 & 코딩 테스트/Java로 푼 코딩 테스트
1. 생각 일단 k번 반복해야 한다. -> for(k) 초기위치 (0,0) 방향 0 : 오른쪽 1 : 아래 2 : 왼쪽 3 : 위 조건에 따라 이동 2. 생각대로 코딩 [ 코드 ] public int[] solution(int[][] board, int k){ int[] answer = new int[2]; //초기화 answer[0] = 0; answer[1] = 0; int direction = 0; for (int i = 0; i < k; i++) { boolean change = false; //방향전화 변수 // 넘어가면 방향 전환 if (direction == 0 && answer[1] == board.length-1) {change = true;} if (direction == 1 && an..
[Java / 코딩테스트] 사다리타기
·
알고리즘 & 코딩 테스트/Java로 푼 코딩 테스트
1. 생각 일단 n번 반복해야 한다. -> for(n), 임시값 만들기 ladder[i][j]에 값이 포함되면, 오른쪽으로 이동, 임시값 +1 ladder[i][j]+1에 값이 포함되면, 왼쪽으로 이동, 임시값 -1 임시값 -> 문자(A,B,C,D,E...)로 변경 2. 생각대로 코딩 [ 코드 ] import java.util.*; public class Problem01 { public char[] solution(int n, int[][] ladder){ char[] answer = new char[n]; int[] temps = new int[n]; for (int i = 1; i < n+1; i++) { int temp = i; for (int j = 0; j < ladder.length; j++..
[Java] 도메인 모델 패턴, 트랜잭션 스크립트 패턴
·
Java
마틴 파울러가 재창한 두개의 개념으로, 비즈니스 로직을 처리하는 2가지 패턴을 말한다. 책임 소재가 Domain Level이냐 Script Level이냐의 차이에 따라 구분된다. 📕 도메인 모델 패턴 (Domain Model Pattern) 📗 도메인 모델 패턴이란? Domain 부분에서 비즈니스 로직을 가지고 있는 패턴 대부분의 비즈니스 로직이 엔티티 안에 구성되어 있어 객체지향의 특성을 적극 활용 📗 장단점 장점 객체 지향에 기반한 재사용성, 확장성, 유지 보수의 편리함 단점 하나의 도메인 모델을 구축하는 데 많은 노력필요 📗 예시 @Getter @Setter @AllArgsConstructor @NoArgsConstructor @Builder public class DayTodo { private ..
마볼링
'java' 태그의 글 목록 (2 Page)